找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1645|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言:const關(guān)鍵字-我要和變量貼貼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我們知道const關(guān)鍵字是用來(lái)修飾變量的,它修飾的變量在程序運(yùn)行的過(guò)程中不能發(fā)生改變,即不能進(jìn)行二次賦值。那么當(dāng)出現(xiàn)以下情況:
1、const int *p;
2、int const *p;
3、int * const p;
在這三句話(huà)中,總共有兩個(gè)變量,分別是指針指向的整型數(shù)據(jù)和指針。如果修飾的是整型數(shù)據(jù),那么*p即指針指向?qū)ο蟮膬?nèi)容不能發(fā)生改變;如果是指針的話(huà),那么p即指針指向的對(duì)象不能發(fā)生改變。讓人不禁流汗,const關(guān)鍵字,你還知道你在和誰(shuí)貼貼嘛。


接下來(lái),便讓福爾摩斯.小李,為你揭曉“渣男”,const關(guān)鍵字的真正(修飾)對(duì)象。

一、種子選手1號(hào):const int *p;


經(jīng)過(guò)一番試探,可以很明顯的看到,在這種情況下,它修飾的是指針指向的整型數(shù)據(jù),而不是指針。因?yàn)橹羔樃淖冎赶驔](méi)有報(bào)錯(cuò),反而當(dāng)我改變指向?qū)ο蟮膬?nèi)容的時(shí)候,系統(tǒng)表示*p只處于只讀狀態(tài),即const關(guān)鍵字當(dāng)前修飾的是整型數(shù)據(jù)(指向?qū)ο蟮膬?nèi)容)。

二、種子選手二號(hào):int const *p


通過(guò)編譯可以看到,它和const int *p修飾的對(duì)象是一樣的,也是整型數(shù)據(jù),即指向?qū)ο蟮膬?nèi)容不能發(fā)生改變。

三、種子選手三號(hào):int * const p;


通過(guò)編譯我們可以看到,此時(shí)const修飾的變量是指針,指針在運(yùn)行的過(guò)程中指向的對(duì)象不能發(fā)生改變。

總結(jié)一下,const關(guān)鍵字只有在和指針貼貼的最近的時(shí)候,修飾的對(duì)象才是指針,在其余情況下修飾的都是指針指向的內(nèi)容。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表