W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
假設(shè)你創(chuàng)建一個(gè)這樣的指針:
int *pvalue = NULL;
NULL是表示C指針的特殊符號(hào)。
該符號(hào)通常定義為((void *)0)
。
當(dāng)您將0分配給指針時(shí),相當(dāng)于將其設(shè)置為NULL,因此您可以編寫以下內(nèi)容:
int *pvalue = 0;
因?yàn)镹ULL等于零,如果要測(cè)試pvalue是否為NULL,您可以寫這個(gè):
if(!pvalue) { // the pointer is NULL! . . . }
當(dāng)p值為NULL時(shí),pvalue將為true。
或者,您可以按如下所示編寫測(cè)試:
if(pvalue == NULL) { //the pointer is NULL! . . . }
您可以使用指針上的const關(guān)鍵字來(lái)指示指向的值不能更改。
以下是一個(gè)指向const值的指針聲明的示例:
long value = 9L; const long *pvalue = &value; // Defines a pointer to a constant
您只聲明p值指向的值不能更改。
你很自由地做你想要的值:
value = 7L;
指向的值已更改,但您沒有使用指針進(jìn)行更改。
當(dāng)然,指針本身不是常數(shù),所以你仍然可以改變它指向:
long number = 8L; pvalue = &number; // OK - changing the address in pvalue
為了確保存儲(chǔ)在指針中的地址不能被改變,在指針的聲明中使用 const
關(guān)鍵字。
這里的如何你可以確保指針總是指向同一件事:
int count = 43; int *const pcount = &count; // Defines a constant pointer
第二個(gè)語(yǔ)句聲明并初始化pcount并指示地址存儲(chǔ)不得更改。
因此,以下語(yǔ)句將導(dǎo)致編譯時(shí)出現(xiàn)錯(cuò)誤消息:
int item = 34; pcount = &item; // Error - attempt to change a constant pointer
您仍然可以更改pcount指向使用pcount的值:
*pcount = 345; // OK - changes the value of count
這引用通過(guò)指針存儲(chǔ)在count中的值,并將其值更改為345。
您可以創(chuàng)建一個(gè)常量指針,指向一個(gè)也是常量的值:
int item = 25; const int *const pitem = &item;
項(xiàng)
是一個(gè)常量指向常量,所以一切都是固定的。
您不能更改存儲(chǔ)在的地址pitem,你不能使用pitem修改它指向什么。
您仍然可以直接更改項(xiàng)的值。
如果你想使一切固定和不可侵犯,你可以指定項(xiàng)為const。
const int item = 25; const int *const pitem = &item;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: