再學C C 之 指標常量 和 常量指標

2022-09-03 03:12:11 字數 1230 閱讀 2625

(1)指標常量,將指標的指向當成常量。即指標變數的值只能在定義的時候初始化,定義後不能修改,也就是說不能改變指標變數的指向。但是不影響所指物件的訪問特徵。其定義形式為:

型別 * const

指標//

型別是該指標所指物件的型別,*為指標型別說明符。

例項1:

int var1 = 100

;

int var2 = 200

;

//初始化指標常量,

int *const const_p1 = &var1;

//指標常量值定義指標的指向不能修改,

//如,這裡將const_p1指向var2的位址,就錯了,

//下面的語句會報錯

const_p1 = &var2;

//但是,指標常量不影響指標所指物件的訪問特徵,

//即,這裡可以修改const_p1的物件的值

*const_p1 = 200

;

//輸出200;

cout << *const_p1

cout << var1 <

(2)常量指標,又稱為指向常量的指標,意思是,將指標所指的物件當成乙個常量,即其訪問特徵為常量,但是,指標的指向可變。定義的形式:

型別 const *指標

或者const 型別 *指標

//型別是該指標所指物件的型別,*為指標型別說明符。

例項2:

int var1 = 100

;

const

int var2 = 200

;

const

int *p1;

const

int *p2;

p1 = &var1;

//上面的語句將p1指向var2,就是將其訪問特性設定為常量,即不可修改,

//所以下面的語句會報錯。

*p1 = 1000

;

//常量指標不影響指標的指向,所以這裡可以重新指向var2

p1 = &var2;

注意:a、常量指標,無論所指的物件是否為常量,均不能通過*p修改。

b、為了保證標識常量的唯讀性,常量的位址只能賦給常量指標(即指向常量的指標)。

(3)總結的來說,指標常量,就是把指標當成常量(指向不可變);常量指標,就是把所指物件當成常量。

C C 指標常量和常量指標

常量指標 常量指標是指向常量的指標,指標指向的記憶體位址的內容是不可修改的。常量指標定義 const int p a p 告訴編譯器是常量,不能將 p作為左值進行操作。但這裡的指標p還是乙個變數,它的內容存放常量的位址,所以先宣告常量指標再初始化是允許的,指標也是允許修改的,例如 int a 0,b...

常量指標和指標常量 C C

按英文的字面意思,從右向左理解就比較清楚了 const char pointer 常量指標 底層const pointer to const 字面意思 指向常量的指標,不能通過這個指標修改指向的內容 char const pointer 指標常量 頂層const const pointer 字面意思...

C C 指向常量的指標和常量指標

由於之前沒有系統的看過書籍,導致概念混淆,由 c primer 中得到,const修飾指標有兩種形態,分別是指向常量的指標 pointer to const 和常量指標 const pointer ps 對之前看過此部落格的同學表示抱歉 int a 1 int b 2 const int p a 等...