指向變數的常指標和指向常變數的指標

2022-08-30 16:54:23 字數 1797 閱讀 9067

剛接觸到指標時,關於指向變數的常指標和指向常變數的指標容易混淆,所以整理下,希望能夠幫助自己也幫助到大家。

常指標就是我們說的指向常量的指標,顧名思義,它是用來指向常量的。

實際上,c++規定只能用指向常變數的指標指向常變數,普通指標指向它就會報錯,原因也很容易理解,我們用普通指標指向常變數之後,有可能就會進行改變常變數數值的操作,這樣做是不被允許的。

常指標的定義方法:

const 型別名  * 常指標名;
型別名 const * 常指標名;
下面是它的乙個簡單的使用示例:

程式1.1.1

#includeusing namespace std;

int main()

{ const int i=5;//定義乙個int型常變數

const int *p;//定義乙個int型常指標

p=&i;//用常指標指向常變數

cout<

如果我們使用普通指標變數來指向常變數:

程式1.1.2

#includeusing namespace std;

int main()

{ const int i=5;//定義乙個常變數

int *p;//定義了乙個int型指標

p=&i;//使用一般的指標指向常變數

cout<

用常指標也是可以指向一般變數的,不過不可以通過常指標來更改一般變數的值,但是可以通過一般變數的變數名來修改變數的值。

下面看乙個示例:

程式1.2.1

#includeusing namespace std;

int main()

{ int i=5;//定義乙個一般變數

const int *p;//定義了乙個常指標

p=&i;//使用常指標指向一般變數

cout<

如果我們使用常指標來修改一般變數的值:

*p=10;

就會報錯:

小結:常指標可以指向常變數和一般變數,但是都不能通過指標改變它指向的變數的值。

指標常量是指的指標本身就是乙個常變數,一經賦初值就不可以被更改。

上面已經說過,只有常指標才可以指向常變數,所以指標常量只可以指向一般變數,而且一旦賦給了初值,就不可以再更改。

定義方法:

型別名 * const 指標常量名=變數位址;
因為指標是常變數所以它在定義的時候就應該賦初值。

乙個程式示例:

程式2.1

#includeusing namespace std;

int main()

{ int i=5;//定義乙個一般變數

int * const p=&i;//定義了乙個指標常量

cout<

每乙個指標都涉及兩個物件,乙個是該指標本身,乙個是該指標指向的物件。

指向常變數的指標

定義方法:

const 型別名 * 常指標名;

型別名 const * 常指標名;
含義:指標是變數,是可以變化的,可以再指向其他的變數。但是,指標指向的資料不可以改變,相當於常變數。

指向變數的常指標

定義方法:

型別名 * const 指標常量名=變數位址;
含義:指標是常變數,即指標本社不可以改變,常指標在定義的時候就必須初始化。一旦初始化,就不可以更改指標的值,不可以再指向其他變數。常指標可以指向普通變數,也可以指向常變數。

const出現在*前面,則是指向常量的指標;const出現在*後面,則是指向變數的常指標

指向變數的常指標與指向常變數的指標變數的區別

一 指向變數的常指標 形式 型別名 const 指標變數名 將指標變數宣告為const型,這樣指標變數始終保持為初值,不能改變,即其指向不能改變 例 include include int main 常指標pcpt已經指向了cbuff1,就不能再指向cbuff2了。注意 雖然常指標只能始終指向同乙個...

指向物件的常指標變數與指向常物件的指標變數區別

time const p 指向物件的常指標變數 p 的值 p的指向 不能修改 const time p 指向常物件的指標變數,p 指向的類物件的值不能通過p來修改 將指標變數宣告為const型,這樣指標變數始終保持初值,不能改變,即其所指向不變。timet1 10,12,15 t2 time con...

指向常物件的指標變數

首先了解指向常變數的指標變數,然後再進一步研究指向常物件的指標變數。定義乙個指向常變數的指標變數ptr const char ptr 定義指向常變數的指標變數的一般形式為 const 型別名 指標變數名 注意 a如果乙個變數已被宣告為常變數,只能用指向常變數的指標變數指向它,而不能用一般的 指向非c...