cpp中常量引用中const和类型的位置关系
1.常量引用
int a=0; int const&b=a;//将const放在类型后面 b=6; #编译报错: error: assignment of read-only reference 'b' int a=0; const int &b=a;//将const放在类型前面 b=6; #编译报错: error: assignment of read-only reference 'b'
以上的代码说明常量引用中const和数据类型的位置先后是不影响效果的。
int a=0; int &const b=a;//尝试将const放在&后面 b=6; //编译报错: error: 'const' qualifiers cannot be applied to 'int&'
因为引用本来就不能指向别的,只能是一个变量的别名,也就是说只能和一个变量绑定:
int a=0,c=1; int & b=a; b=c;//尝试指向别的变量 c=2; cout<<a<<" "<<b<<" "<<c; //输出 1 1 2
以上代码中b=c并不是将b指向新的变量,而是将b和a修改为c的值,通过之后的输出也可以看出来。
int a=0,c=1; const int & b=a; b=c;//尝试更改值 //编译报错 error: assignment of read-only reference 'b'
2.引用在出现时就要初始化
int a=0; int & b; b=a; //编译报错: error: 'b' declared as reference but not initialized
以上做了不少小实验验证了知识点。