五月天青色头像情侣网名,国产亚洲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)遵守國家法律
兴城市| 平定县| 巴彦淖尔市| 嵩明县| 洮南市| 舟曲县| 湟源县| 香港 | 延寿县| 泗阳县| 将乐县| 南安市| 格尔木市| 呼图壁县| 湟源县| 杂多县| 崇信县| 西林县| 疏勒县| 华阴市| 桂平市| 玉山县| 永春县| 洪雅县| 芦山县| 方城县| 江源县| 德钦县| 于都县| 高安市| 双城市| 休宁县| 浦江县| 新河县| 内乡县| 新乡市| 容城县| 万安县| 张家口市| 垦利县| 吴桥县|