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