C 關於指標 const 引用三者的體會

2021-08-08 19:38:51 字數 1122 閱讀 6654

關於三者的應用可以用一下幾句話來總結:

一、對變數的更改許可權只會變低

二、符號離誰近就修飾誰

三、const不是物件

首先看第一句,對變數的更改許可權只會更低;

舉例說明:

int x = 0;//對該變數可讀可寫;正確

const int &y=x;對該變數可讀不可寫;正確

int const a = 0;//對該變數可讀不可寫;正確

const int &b=a;//對該變數可讀不可寫;正確

int &c=a;//對該變數可讀可寫;錯誤;原因是 定義的c引用表示可以更改他所『指』的變數的值,這意味他有可讀可寫的許可權,但是a是常量,可讀不可寫。然而這句**提高了a的許可權為可讀可寫。

同樣指標也是一樣。

第二句,符號離誰近就修飾誰:

仍然舉例:

const int x=0;此處可寫成 int const x=0; 忽略int ,const 修飾 x,也就是說x為常量,裡面放int型別

const int &y=x;此處可寫 int const &y=x;忽略int ,const 修飾&y,也就是說引用y『指』向的『物件』為常量

int &const f=x;錯誤,引用不是物件不能把引用本身用const修飾,但是,引用本身定義之後就不能修改;

int const *p=&x;或者const int *p=&x;const 修飾*p,*修飾p,也就是說p是指標。const修飾*p,就是p指向的『物件』為常量

int *const g=&x;*修飾const g,cosnt修飾g,也就是說g為常量,*修飾const g,就是說該常量為指標,他會一直指向乙個物件,不能指向別的物件

const int *const gg=&x;表示他會一直指向常量x,不能指向其他物件,同時不能通過gg修改x;

關於引用和指標:

引用時別名,而指標放的是位址。關於引用、指標用作形參,則不在這裡說了。

第三句,const不是物件

C語言關於指標P P P三者的區別

1 指標和指標變數是兩個不同的概念,但要注意的是,通常我們敘述時會把指標變數簡稱為指標。2 指標就是位址,位址就是指標,它是乙個形無符號整型,乙個整數,它的大小取決於系統是16 32 還是64位的 16 8 2byte 32 8 4byte 64 8 8byte.3 指標變數其實是乙個變數,只不過其...

c 引用 指標 const

1 const定義常量 const int valuename value 2 const與指標 指標常量 int const p 指標的位址不允許修改,值可以修改 常量指標 const int p 值不能修改,位址可以修改 指向常量的指標常量 const int const p 3 const與函...

c 裡關於cerr,clog,cout三者的區別

c 裡關於cerr,clog,cout三者的區別 cerr 無緩衝標準錯誤 沒有緩衝,傳送給它的內容立即被輸出 clog 緩衝標準錯誤 有緩衝,緩衝區滿時輸出 cout 標準輸出 三個都是ostream類定義的輸出流物件。cout是在終端顯示器輸出,cout流在記憶體中對應開闢了乙個緩衝區,用來存放...