一 指向變數的常指標
形式: 型別名 * 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...