1. 程式人生 > 實用技巧 >cpp中常量引用中const和型別的位置關係

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

以上做了不少小實驗驗證了知識點。