五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語言中const的用法詳解

2023-08-28 11:29 作者:BYYYSJX  | 我要投稿

const是constant的簡寫,用來定義常量,它限定一個(gè)變量不允許被改變,產(chǎn)生靜態(tài)作用。const最開始推出的目的是為了取代預(yù)編譯指令,取長補(bǔ)短。

const是一個(gè)C語言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在觀看別人代碼的時(shí)候,清晰理解const所起的作用,對(duì)理解對(duì)方的程序也有一些幫助。另外CONST在其他編程語言中也有出現(xiàn),如C++、PHP5、C#.net、HC08C。


與define的對(duì)比

  1. define是預(yù)編譯指令,定義的宏是在預(yù)處理階段展開的,而const是普通變量的定義,是只讀變量,且是在編譯運(yùn)行階段使用的。

  2. define定義的是常量,define定義的宏在編譯后消失了,它不占用內(nèi)存,而const定義的常變量本質(zhì)上仍然是一個(gè)變量,具有變量的基本屬性,有類型、占用存儲(chǔ)單元,除了不能作為數(shù)組的長度,用const定義的常變量具有宏的優(yōu)點(diǎn),而且使用更方便。

  3. define定義的對(duì)象沒有數(shù)據(jù)類型,編譯器只能機(jī)械地進(jìn)行字符替換,沒有類型安全檢查,即會(huì)出現(xiàn)“邊際問題”或者是“括號(hào)問題”。而const定義的是變量,有數(shù)據(jù)類型。


為什么不能在一個(gè)常量對(duì)象中調(diào)用非常成員函數(shù)?

因?yàn)樵谀J(rèn)情況下,this的類型是指向類的非常量版本的常量指針(意思是this的值不能改變,永遠(yuǎn)指向那個(gè)對(duì)象,即“常量指針”,但是被this指向的對(duì)象本身是可以改變的,因?yàn)槭欠浅A堪姹?,這里this相當(dāng)于是頂層const),而this盡管是隱式的,它仍然需要遵循初始化規(guī)則,普通成員函數(shù)的隱式參數(shù)之一是一個(gè)底層非const指針,在默認(rèn)情況下我們無法把一個(gè)底層const的this指針轉(zhuǎn)化為非const的this指針,因此我們不能在常量對(duì)象上調(diào)用普通的成員函數(shù)。因此在上例中,形參列表后的const就意味著默認(rèn)this指針應(yīng)該是一個(gè)底層const, 類型是 const ClassName&。而非常對(duì)象卻可以調(diào)用常成員函數(shù),因?yàn)榈讓臃莄onst可以默認(rèn)轉(zhuǎn)化為底層const。

WRITE-BUG研發(fā)團(tuán)隊(duì)衷心希望【W(wǎng)RITE-BUG數(shù)字空間】可以給每位同學(xué)一個(gè)屬于自己的秘密空間,同時(shí)祝愿大家在“公開圈子”世界里,遇見志同道合的伙伴們,因?yàn)槲覀兣c大家一樣,都曾孤獨(dú)前行著。


C語言中const的用法詳解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
南乐县| 商河县| 镇赉县| 红桥区| 城固县| 三亚市| 油尖旺区| 上饶县| 岗巴县| 家居| 枝江市| 乐陵市| 遂平县| 惠水县| 平武县| 丹凤县| 丰宁| 德庆县| 常德市| 泽州县| 济阳县| 泸溪县| 长垣县| 永兴县| 砀山县| 延安市| 赤峰市| 元朗区| 永寿县| 谷城县| 博兴县| 介休市| 务川| 灵山县| 榆林市| 苍山县| 阳山县| 大新县| 乌拉特前旗| 博客| 伊金霍洛旗|