C C 指標常量和常量指標

2023-02-08 00:35:48 字數 442 閱讀 8392

為了區分是指向常量的指標還是const指標(表示指標本身是常量)

一個簡便方法:從由往左讀,遇到p就替換為“p is a”,遇到*就替換為“point to”,其餘不變。

const int

* p ;// p is a point to int const ,p是一個指向常量的指標,指向的物件是一個常量,所以不能改變 *p(p指向記憶體地址)的值,但是p可以指向其它地址

int * const p;// p is a const point to int, p是一個常量指標,指向int,所以不能改變指標本身p的值,但是可以改變p指向記憶體地址的值

根據effective c++裡總結的:

如果關鍵字const出現在星號左邊,表示被指物是常量;

如果關鍵字const出現在星號右邊,表示指標自身是常量;

如果出現在星號兩邊,表示被指物和指標兩者都是常量;

常量指標 指標常量和“常量指標常量”詳解

常量指標 指標指向的值不能修改,但是指標的指向可以修改 常量指標定義方式為 const int p a includeusing namespace std int main int a 100 int b 200 常量指標,指標的指向可以更改,但是指標指向的值不能改 const int p a p...

C C 中的常量指標和指標常量

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

指標常量和常量指標

請問下面的兩行 p有什麼區別?int const p1 i constint p1 i 我們的測試 如下 includeint main 編譯過程為 錯誤 error c2166 左值指定 const 物件 錯誤 error c2166 左值指定 const 物件 指標常量和常量指標 1中的p是不可...