常量表達(dá)式
是指在編譯器編譯時(shí)期就可以的到值的表達(dá)式,例如:const int a = 3
,雖然聽起來很簡單,但實(shí)際上很容易犯錯(cuò)。本文簡要總結(jié)它們的不同:
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括張家口網(wǎng)站建設(shè)、張家口網(wǎng)站制作、張家口網(wǎng)頁制作以及張家口網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,張家口網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到張家口省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
一般,我們聲明const用來存儲(chǔ)不變的恒定量:
const int MAXN = int_max;
用指針指向:
const int *pMAXN = &MAXN;
這條語句開始的const int
實(shí)際上是為了MAXN
的類型做出的匹配,我們得到的pMAXN
實(shí)際上是可修改的。
那么如何讓 pMAXN 不可修改呢?
c++采用’雙const‘的方法:
const int * const pMAXN = &MAXN;
這樣,pMAXN
成為了不可修改值的,指向MAXN
的指針。
其中,可以修改值的const就被稱為底層const,而不可修改值的稱為頂層const。
const int *pMAXN = &MAXN; //底層const
const int * const pMAXN = &MAXN; //左邊底層const,右邊頂層const
很顯然,當(dāng)我們使用typedef的時(shí)候,const又產(chǎn)生了問題:
typedef char *pstring;
const pstring *ps;
在有上面的語句的基礎(chǔ)上,這條語句是什么意思?
const pstring cstr = 0;
一般情況下,我們看到pstring
就會(huì)直接去找它的定義,這種習(xí)慣是錯(cuò)誤的!我們應(yīng)該按照次序,先讀這條語句。
首先,pstring
加上了const
修飾符,這代表定義的語句是const狀態(tài),是常量表達(dá)式。其次,pstring
定義的是指向char
類型的指針,所以,綜上所述,這條語句聲明了一個(gè)指向char
的常量指針
即,指針的值不可修改。
那這一條語句呢:
const char *cstr = 0;
它聲明了一個(gè)指向const char
類型的指針。指針的值可以修改。
本文題目:const關(guān)鍵字:可改不可改?
分享網(wǎng)址:http://chinadenli.net/article32/dsoippc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)