引用VS指针
1) 引用是给一个变量起别名,对引用的修改即对变量的修改
2) 格式:类型 &引用名 = 变量名
例如:int a = 1;int &b = a;//b是a的别名
注:定义引用时一定要初始化,指明该引用变量是谁的别名
3) 引用一般用于参数传递与返回值
A. 作为函数形参:
在C语言中:传递实参变量名只能使用不能修改,传递实参变量的地址既能使用又能修改;
在C++语言中:传递实参变量名既能使用又能修改。
int num =5;add(num);
//voidadd(&num){num++;}
B. 作为返回值:
在C++语言中,将函数的返回值作为赋值语句的左值
注:不能返回局部变量的引用
4) 引用与指针的区别
A. 引用访问一个变量是直接访问,而指针是间接访问;
B. 引用是一个变量的别名,本身不单独分配自己的内存空间,而指针又自己的内存空间;
C. 引用一经初始化不能引用其他变量,而指针可以;
D. 指针在定义时,可以不初始化,而引用在定义时必须初始化;
E. 指针变量指向的地址可以根据需要动态修改,而引用只要和摸个变量绑定后就不能改变;
F. 使用sizeof求指针变量的大小总是4字节(32位),表示地址所占的空间是4字节,而sizeof引用的大小不是固定的,其大小由所引用的源头变量确定。
尽可能使用引用,不得已时使用指针。
5) const引用:指向const对象的引用
const int num =12;
const int&temp = num;//正确
int &ptr =num;//错误