C++随笔:引用
北京时间2023年06月12日,坐标深圳龙岗坂田,天气晴朗,温度稍热。今天终于没有在午后下雨了,雨季似乎过去了。今天学习C++中的引用,随笔记录...
1、引用(类型 & 引用变量(或者叫引用名更准则) = 变量名)定义:引用是变量的一个别名,本质上它并不是变量,因为变量是数据对象,而引用仅仅是变量的一个别名,生活上的例子:鲁迅的笔名叫周树人,周树人既鲁迅的引用。int a = 10; int & ref = a;此时ref就是a的一个引用、一个别名,所以直接操作ref即可改变a的值,ref = 20;此时a = 20。引用因为非数据对象,所以定义时必须初始化,int & ref8;是错误的。同时不能对字面值常量作引用,int & ref = 10; 是错误的!
2、引用一旦初始化不能再绑定到其他变量上,如int b = 30; ref = b,此时ref代表的是a,既相当于a = b = 25了,而&ref = b则是语法错误提示表达式必须是可修改左值。
3、引用的引用(类型 & 已定义的引用变量),int & rref = ref; rref = 100;此时a被修改为100,ref作为a的别名、引用自然也是100。
4、引用和指针常量相似(只能绑定一个变量),int k = 50; int * const p = &k; *p = 60(指针常量p可以修改k的值),但是int u = 60; p = &u; 是错误的。复习下常量指针(指针指向的值是常量,指针本身可以重指向其他变量,但是不能改变那个常量),const int y = 70; const int * p2 = &y; *p2 = 77 ;是错的。 const int t = 80; p2 = &t; 是合法的。
5、对常量的引用(const 类型 & 引用名 = 常量[字面值常量或者常量变量]、非常量的变量、非同一种类型的变量)定义:int i = 5; const int q = 52; double pi = 3.14; 常量的引用①const int & ref = i ;② const int & ref = 30 ; ③const int & ref = q; ④const int & ref = pi; 均为合法操作。此时 ref = 任意值 都是错误的,对于 ④const int & ref = pi ;相当于对3(double转int是粗暴的直接干掉小数部分)作了常量的引用。