有指標常量和常量指標
那麼有沒有引用常量和常量引用呢?答案是,沒有引用常量
引用有常量引用和普通引用。
要區分常量和常量引用的區別《引用作為形參時,形參的位址其實就是對應實參的位址;但是如果形參為常數時,則會為形參重新分配空間》
常量引用的定義方式:int b;const int &a =b;或者int b;int const &a=b;
對引用來說,引用的型別必須和其引用物件的型別必須一致,但常量引用只要求其返回的結果能轉換成引用的型別。
常量引用只有2種情況會繫結到實際的物件:一是常量引用的初始值為const物件,且該物件型別與常量引用型別相同(如const int i ; const int &r = i;);二是常量引用的初始值為非const物件,且該物件也與常量引用型別(除去const的型別)相同(如int i; const int &r = i;).測試**中,r2的情況即是如此.這種情況下,繫結的非const物件內容可以用其他普通引用改變.其他時候繫結的是臨時變數
非常量左值引用不能接收右值,常量左值引用可以接受左值,右值,常量左值,常量右值
c 的引用 常量引用
c 中的引用不用考慮太多解引用的東西 include using namespace std void func int ref intmain 在c 中,int ref a等價於int const ref a,也就是說ref直接存的是a的位址。但是實際上想要對ref的值進行修改的話,是不需要解引用...
C 的引用與常量
int a 10 int b a 其實在編譯時,編譯器會將 int b a 變為 int const b a 由於int const 所修飾的變數必須要賦初值,且由於const 修飾的 b 所以表示b指標是無法修改的,即b指標無法指向另乙個指標,所以這也驗證了引用必須賦初值的原因。附 關於如何引用陣...
轉 C 的常量引用
如果是對乙個常量進行引用,則編譯器首先建立乙個臨時變數,然後將該常量的值置入臨時變數中,對該引用的操作就是對該臨時變數的操作。對常量的引用可以用其它任何引用來初始化 但不能改變。關於引用的初始化有兩點值得注意 1 當初始化值是乙個左值 可以取得位址 時,沒有任何問題 2 當初始化值不是乙個左值時,則...