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

2021-08-09 08:55:45 字數 1469 閱讀 3073

一 指向變數的常指標

形式: 型別名 *   const  指標變數名

將指標變數宣告為const型,這樣指標變數始終保持為初值,不能改變,即其指向不能改變 例

#include #include int main()

常指標pcpt已經指向了cbuff1,就不能再指向cbuff2了。

注意:雖然常指標只能始終指向同乙個變數,但可以改變其所指向變數的值。

例:

#include #include int main()

執行結果:

可以看出pcpt和cbuff1的值被改變了。

通常用常指標作為函式的形參,目的是不允許在函式執行過程中改變指標變數的值,使其始終指向原來的物件。 例:

#include #include int func(char * const _pcpt)

int main()

此程式是編譯不過的,是因為在func函式中,_pcpt改變了指向,所以導致出錯;

二 指向常變數的指標變數

形式:const  型別名 *指標變數名;

表示指標變數指向的變數是常變數,不能通過指標變數來改變其值。

(1)如果乙個變數已被宣告為常變數,只能用指向常變數的指標變數指向它,而不能用一般的(指向非const型變數的)指標變數去指向它。

#include #include int main()

(2)

指向常變數的指標變數除了可以指向常變數,還可以指向未被宣告為const的變數,此時不能通過此指標變數改變該變數的值。

如果不是通過指標變數訪問,則變數的值是可以改變的。

**中的pcpt = cbuff2;

cbuff2[0] = '3';

說明了此原理。

(3) 如果函式的形參是指向普通(非const)變數的指標變數,則實參只能用指向普通(非const)變數的指標,而不能用指向const變數的指標。

用指標變數作形參和實參的對應關係

形參實參

是否合法

改變指標所指向的變數的值

指向非const型變數的指標

非const變數的位址

合法可以

指向非const型變數的指標

const變數的位址非法/

指向const型變數的指標

const變數的位址

合法不可以

指向const型變數的指標

非const變數的位址

合法不可以

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

剛接觸到指標時,關於指向變數的常指標和指向常變數的指標容易混淆,所以整理下,希望能夠幫助自己也幫助到大家。常指標就是我們說的指向常量的指標,顧名思義,它是用來指向常量的。實際上,c 規定只能用指向常變數的指標指向常變數,普通指標指向它就會報錯,原因也很容易理解,我們用普通指標指向常變數之後,有可能就...

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

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...