指標常量和常量指標

2021-08-18 21:59:54 字數 1130 閱讀 1959

一、首先教大家如何區分指標常量、常量指標(知乎大神介紹《c primer plus》中的方法)

現列出指標常量和常量指標的各種寫法:

const int p;

const int* p;

int const* p;

int * const p;

const int * const p;

int const * const p;

第一種是常量整數,這個很容易確定;

接下來就是重頭戲了:

要介紹的方法就是:從右往左讀,遇到 p 就替換成 「p is a」遇到 * 就替換成「point to」。

就上面的各種寫法舉例:2. 讀作 p is a point to int const

翻譯為 p是乙個指向整型常量的指標,常量指標

3. 讀作 p is a point to const int       可以看出 3. 和 2. 是一樣的;

4. 讀作 p is a const point to int

翻譯為 p是乙個常量,指向int,指標常量

5.讀作 p is a const point to int const

翻譯為 p是乙個常量,指向整型常量

6. 同理跟 5. 是一樣的

現在是不是很容易就能分清 指標常量 和 常量指標了呢?

還有一種更簡單的辨別方法:

首先寫出   int  * p   劃分位置,(1)  int (2)    *  (3) p

const 在(1)(2)位置的意義是一樣的,const  int  *p, int  const  *p ——const解釋為常量,*解釋為指標,那麼從左向右讀便是常量指標。

const在(3)位置上,int  *  const  p  —— 同樣*解釋為指標,const解釋為常量,此為指標常量。

總結是 const 「離誰近,修飾誰」。

二、那我們接下來看一下 指標常量 和 常量指標的 具體概念

1. 指標常量:指標本身是常量。它指向的位址是不可改變的,但位址裡的內容可以通過指標來改變,指標常量在定義時必須同時賦初值。

2.常量指標:指向常量的指標,它指向的內容不能發生改變,不能通過指標來修改它指向的內容。但是,指標自身不是常量,它

自身的值可以改變,從而指向另乙個常量。

指標 常量指標和指標常量

const關鍵字宣告乙個常量,常量宣告後不能修改。類似的,我們可以宣告常量指標 double radius 5 double const pvalue radius pvalue 4 可以修改其中pvalue是乙個常量指標,其宣告和初始化必須在同一條語句中,後面的程式不能為其賦予新的位址。注意,雖然...

常量指標 和 指標常量

在c 的學習中,有人經常搞不清楚 常量指標 和 指標常量 這兩個概念。其實簡單一點講,常量指標 所指向的位址上的資料是常量,而 指標常量 所指向的位址是常量,位址上面的資料是可以變化的。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。指標常...

常量指標和指標常量

定義 具有只能夠讀取記憶體中資料,卻不能夠修改記憶體中資料的屬性的指標,稱為指向常量的指標,簡稱常量指標。宣告 const int p int const p 注 可以將乙個常量的位址賦值給乙個對應型別的常量指標,因為常量指標不能夠通過指標修改內粗資料。只能防止通過指標引用修改記憶體中的資料,並不保...