天天看點

《好學的C++程式設計》——2.4 對資料變量怎樣保護

本節書摘來自異步社群出版社《好學的c++程式設計》一書中的第2章,第2.4節,作者: 張祖浩 , 沈天晴,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

好學的c++程式設計

對資料變量進行保護就是對變量值進行保護。就是采取措施,使得在程式運作中變量值不受改變,以保證資料的安全。這在某些場合下是需要的,可以采取如下幾方面的措施。

若資料變量的值保持不變,則稱之為常值資料變量。常值資料變量的聲明形式如下:

聲明中,const可以放在開頭,也可以放在緊靠變量名左側。要注意,常值資料變量在聲明時一定要用常量值進行初始化。在程式中是不允許對常值資料變量指派的,這就保證了常值資料變量在整個程式中的值是不變的。

例如,我們可以聲明一個double型常值資料變量如下:

常值資料變量又叫做符号常量。經上述聲明後,符号“pi”就是符号常量,在程式中它就代表常量3.1416了。如果作了如上聲明以後,出現如下語句,則是非法的:

用const聲明常值指針變量

若指針變量的值保持不變,則稱之為常值指針變量。可用const聲明常值指針變量。例如,我們作一個如下的聲明:

這種聲明的特點是const緊靠指針變量名p的左側。const限定p的值是恒定的。也就是說,指針p的指向是恒定的。在聲明時就必須對p進行初始化(例如,設定初值為&a),以後不可再進行指派。這說明指針p指向變量a不可動搖。但對變量a的值則無任何限制。

例如,作了如上聲明以後,如果出現如下語句:

資料類型 *const 指針變量名=常位址;

int a=80;      //a

const int *p;    //b

p=&a;        //c

p=500;       //此句非法!不可對p進行指派(寫)。

a=4000;       //此句合法。聲明中沒有對變量a作任何限制。

cout<<p<<‘n’;   //此句合法。可用p進行讀值。輸出a值4000。

const 資料類型 * 指針變量名;

const 資料類型 * const 指針變量名=常位址;

用const聲明隻讀别名變量

const 資料類型 * 别名變量名=變量名;

int a=80;      //a

const int &x=a;  //b

x=2000;       //此句非法!不可對x進行指派(寫)。

a=4000;       //此句合法。聲明中沒有對變量a作任何限制。

cout<

繼續閱讀