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

以上做了不少小实验验证了知识点。

原文地址:https://www.cnblogs.com/BlueBlueSea/p/14203823.html