电竞比分网-中国电竞赛事及体育赛事平台

分享

C語言之const常量(摘自C和指針)

 muyable 2013-05-11

        C語言中我們可以使用const和define關(guān)鍵字聲明常量,所謂常量就是指值不能修改的量。如下面的例子所示:

int const a;  

const int a;  

        這兩條語句都把a(bǔ)聲明為一個(gè)常量(整數(shù)),它的值不能被修改。

        由于常量的值無法被修改,所以不能用任何其他東賦值給它,如此一來,怎樣使它在一開始就擁有一個(gè)值呢?有兩種方法:

法1:在聲明時(shí)對(duì)其進(jìn)行初始化,如下所示:

int const a = 15;  

法2:在函數(shù)中聲明為const的形參在函數(shù)被調(diào)用時(shí)會(huì)得到實(shí)參的值。

        當(dāng)涉及指針變量時(shí),情況變得更加有趣,因?yàn)橛袃蓸訓(xùn)|西都有可能成為常量——指針變量和它所指向的實(shí)體(即指針?biāo)赶虻膬?nèi)存地址所存儲(chǔ)的值)。下面幾個(gè)聲明的例子:

int *pi;  

        pi是一個(gè)普通的指向整形的指針。而變量

int const *pci;  

        則是一個(gè)指向整型常量的指針。你可以修改指針的值,但你不能修改它所指向的值。相比之下:

int *const cpi;  

        則聲明pci為一個(gè)指向整型的常量指針。此時(shí)指針是常量,它的值無法修改,但你可以修改它所指向的整型的值。

int const * const cpci;  

        最后,在cpci這個(gè)例子里,無論是指針本身還是它所指向的值都是常量,不允許修改。


提示:

        當(dāng)你聲明變量時(shí),如果變量的值不會(huì)被修改,你應(yīng)該在聲明中使用const關(guān)鍵字。這種做法不僅使你的意圖在其他閱讀你的程序的人面前得到清晰的展現(xiàn),而且這個(gè)值被意外修改時(shí),編譯器能夠發(fā)現(xiàn)這個(gè)問題。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多