最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
寿阳县| 古交市| 颍上县| 临澧县| 巴彦淖尔市| 平凉市| 杭锦旗| 永新县| 红河县| 抚宁县| 仁寿县| 宕昌县| 呼图壁县| 榆社县| 都兰县| 澄城县| 怀来县| 宁都县| 卢氏县| 祁东县| 东阿县| 衡阳县| 余姚市| 衡阳市| 明溪县| 共和县| 武乡县| 右玉县| 封开县| 建始县| 遂昌县| 历史| 甘肃省| 曲水县| 鄢陵县| 阳信县| 全椒县| 仁寿县| 克拉玛依市| 娄烦县| 永嘉县|