c語言指標常量和常量指標的區別

2022-07-06 19:54:11 字數 620 閱讀 1492

1.常量指標const在指標符號之前(*) ,一般用來修飾形參,防止所傳的實參被修改

int a = 10;

int b = 20;

const int* p = &a;

指標的指向可以改變,不可以直接修改指標所指的值,可以間接修改指標所指的值,

*p = b     是非法的

p = &a;   是合法的

a = 20; 是合法的

2. 指標常量指標的指向不能被修改,指標所指物件的值可以被直接修改

指標常量的值是指標,這個值因為是常量,所以不能被賦值。

int * const p = &a;

*p = 20; 是合法的

p = &b; 是非法的

三)指向常量的指標常量

顧名思議,指向常量的指標常量就是乙個常量,且它指向的物件也是乙個常量。

因為是乙個指標常量,那麼它指向的物件當然是乙個指標物件,而它又指向常量,說明它指向的物件不能變化。

const int * const p =&a;

C語言 指標常量和常量指標的區別

標題列出了5個概念,以指標為一組,常量為一組的兩組概念內部是非常容易混淆的。希望以本文來清晰區分它們。一.const限定符 將const理解為乙個修飾詞似乎更容易理解一些。一旦出現const,一定要看清楚它究竟修飾的是什麼。雖然這句話比較抽象且模糊,但接下來所述的所有內容將舉出例子,理解下面的內容就...

c 常量指標和指標常量區別

const double cptr 這裡的cptr是乙個指向double型別const物件的指標,const限定了cptr指標所指向的物件型別,而並非cptr本身。也就是說cptr本身並不是const。在定義時不需要對它進行初始化,如果需要的話,允許給cptr重新賦值,使其指向另乙個const物件。...

C 常量指標和指標常量的區別

首先是乙個常量,其次該常量是個指標。因為是乙個指標型別的常量,所以定義時必須初始化乙個變數的位址,且始終指向該位址不能被更改即只能賦值一次,但位址中存放的內容可以被更改。通過以下例子了解指標常量的特性 int a,b int const p a 指標常量初始化 p 10 操作成功,指標常量所指位址的...