1.引用的定义: 数据类型& 别名 = 原变量名;(c++概念)
(引用打印出来的地址和原变量的地址,是一样的)
(1)引用作为函数参数声明时不进行初始化
(2)使用引用作为函数形参可以达到的效果:
例:可以改变函数实参的交换函数
void swap(int &a,int &b){ //(a,b是传进来的实参的别名,函数内操作别名其实就是对实参进行交换)
int tmp = a;
a = b;
b = tmp;
}
2.引用的意义是什么
1)引用作为变量的别名存在,在一些场合可以代替指针
2)引用相对于指针,有更好的可读性和实用性
3.引用的本质是指针常量int * const p
4.指针引用:对指针起别名
指针引用的用途:可以代替二级指针,将函数内的变量带出
例:
void farm(int * &farmer){
static int pear = 10;
farmer = &pear;
}
int *farmer = nullptr;
farm(farmer);
cout<<"pear:"<<*farmer<<endl;
5.常引用
常引用的定义:const 数据类型& 别名 = 原变量名;
两种初始化方式:1)用变量初始化常引用;表示只能读
2)用字面量初始化常引用,但是没什么意义
6.指针使用常见错误
1)使用未初始化的指针
2)将值当成地址赋给指针
3)忘记解引直接访问内存
4)再次使用指针忽略重新赋初值(每次再次使用指针都要重新赋值)