關於常量指標的引用

2021-07-15 18:26:43 字數 696 閱讀 1427

int main()

; const int * const p = n;

//既然有指向指標的引用,就不難想到指向常量指標的引用。

//於是就有如下嘗試

//const int * (&r) = p;

//結果報錯如下

//將 "const int *&" 型別的引用繫結到 "const int *const" 型別的初始值設定項時,限定符被丟棄

//也就是說由於頂層const被拋棄 賦予r的為 const int *型別的指標 由於引用可以改變指向物件的值,所以宣告報錯

//這時候就想到了const_cast型別轉換了 我們加上後**如下

const int * (&r) = const_cast(p);

std::cout << *r<<" ";

r += 1;

std::cout << *r<<" " ;

//輸出**如下:3 4

//也就是說使用指向 const * const 型別的指標 的引用的時候會丟失掉指標的const 這使得我們可以改變指標引用的值(指標指向的位址)。

//這就使得源指標p的值發生了改變!!! 這很不安全!!! 所以不要使用引用來返回介面物件!!!

std::cout << *p << " ";

return 0;

}

引用,指標,常量引用,常量指標,指標常量的區別

1.指標 指標代表乙個變數的位址 例如 int a 2,b 1,pi a pi b 2.引用 引用即針對乙個變數的別名,引用必須被初始化,引用作為引數 形參 時,不會像指標一樣使用儲存單元,更不會像值傳遞一樣建立該引數的副本,提高空間 時間效率。例如 int a 2,b a 3.常量引用 格式為 c...

關於const引用 常量指標 指標常量的一些知識

應該將不需要修改的引用形參定義為const引用。普通的非const引用形參在使用時不太靈活。這樣的形參既不能用const物件初始化,也不能用字面值或者產生右值的表示式實參初始化,如下所示 int incr int val int main 理解返回引用至關重要的是 千萬不能返回區域性變數的引用。當然...

C Primer 引用 指標 常量

定義引用時,程式把引用和它的初始值繫結在一起,而不是把初始值拷貝給引用。一旦初始化完成,引用將和它的初始值物件一直繫結在一起,因此無法讓引用繫結另乙個物件,所以引用必須初始化。所有引用的型別都必須要和與之繫結的物件嚴格匹配,而且引用只能繫結在物件上,而不能和字面值或表示式的結果繫結在一起,以下兩種情...