C++笔记 3.22

知识点6 尽量用const替换#define

const有类型,可以在编译阶段进行安全检查。#define没有类型,在预处理阶段就已经替换掉原内容,不可以进行类型检查。(报错时已经返回define后的错误值)

const有作用域,#define不重视作用域,默认从定义位置执行到#undefine或者结尾,如果要定义在指定作用域下有效的常量就不能够使用#define。

知识点7【重要】通过引用的方式给原有的变量取别名

int num = 10;

int &a = num;

a完全等价于num

引用必须初始化,一旦初始化以后就不能够再次修改别名

知识点8 给数组取别名

方法一

  1. void test 01()  
  2. {  
  3.     int arr [5] = {10,20,30,40,50};  
  4.     int (&my_arr) [5] = arr;  
  5.       
  6.     int i = 0;  
  7.     for (i = 0;i < 5; i++)  
  8.     {  
  9.         cout << my_arr[i] <<” “;  
  10.     }  
  11.     cout << endl;  
  12. }  

方法二 使用typedef给数组类型取别名

  1. void test 02()  
  2. {  
  3.     int arr[5] = {10,20,30,40,50};  
  4.     typedef int TYPE_ARR[5];  
  5.       
  6.     TYPE_ARR &myArr = arr;  
  7.     int i = 0;  
  8.     for(i = 0; i < 5; i++)  
  9.     {  
  10.         cout << myArr[i] << ” “;  
  11.     }  
  12.     cout << endl;  
  13. }  

知识点9 引用作为函数的参数

使用引用作为函数参数,方便与传递参数进行内部操作

知识点10 引用作为函数的返回值

给返回值取别名,当函数的返回值是引用时 ,不要返回局部变量,否则导致指针非法访问内存。

知识点11 引用的本质

本质是在C++内部的一个指针常量,等价于语句Type* const ref = &val;

编译器在编译过程中用常指针作为引用的内部实现,引用占用的空间大小和指针相同。

知识点12 指针的引用

在C++中能用引用尽量不使用指针。

知识点13 常引用

加入const防止数值被修改

当要给常数使用引用取别名时要用常引用

const int &num = 10;

发表评论

邮箱地址不会被公开。 必填项已用*标注