const 限定符,它把一個對象轉(zhuǎn)換成一個常量。

創(chuàng)新互聯(lián)主營鎮(zhèn)沅網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),鎮(zhèn)沅h5微信小程序搭建,鎮(zhèn)沅網(wǎng)站營銷推廣歡迎鎮(zhèn)沅等地區(qū)企業(yè)咨詢
1.》》const與define。兩者都可以用來定義常量,但是const定義時,定義了常量的類型,所以更精確一些。#define只是簡單的文本替換,除了可以定義常量外,還可以用來定義一些簡單的函數(shù),有點類似內(nèi)聯(lián)函數(shù)(Inline)。const和define定義的常量可以放在頭文件里面。(小注:可以多次聲明,但只能定義一次)
2.》》const與指針和引用。
(a)const與指針。
先來看看下面的幾種定義:
intme;
constint*p1=me;//p1可變,滾液*p1不可變,大則物此時不能用*p1來修改,但是p1可以轉(zhuǎn)向
int*constp2=me;//p2不可變,*p2可變,此時允許*p2來修改其值,但是p2不能轉(zhuǎn)向。
constint*constp3=me;//p3不可變,*p3也不可變,此時既不能用*p3來修改其值,也不能轉(zhuǎn)向
(b)指針和引用的區(qū)別很簡單,就是引用更簡潔,更安全。因為引用聲明時必須初始化。 引盯銀用更接近const指針,一旦與某個變量關(guān)聯(lián),就將一直效忠于他。
(c)const指針可以接受const和非const地址,但是非const指針只能接受非const地址。所以const指針的能力更強一些,所以盡量多用const指針,這是一種習(xí)慣。
3.》》(a)const與函數(shù)。由于2(c),所以經(jīng)常把函數(shù)的形參類型設(shè)為const,而且多為const 引用。但是這里有一個限制,不能把不是左值的地址傳遞給引用。(左值包括變量,數(shù)組元素,結(jié)構(gòu)成員,引用,被解除引用的指針等)。 形參是const類型的,說明該函數(shù)將不會修改其值,該函數(shù)便為const函數(shù)。
(b)const與類成員函數(shù)。先看看下面這段代碼:
constStockland=Stock("hyd");
land.show();
land 是常量,但是類成員函數(shù)show無法保證不修改land,所以編譯器將拒絕執(zhí)行該段代碼。除非你能保證show像const函數(shù)一樣,但這需要另外一種語法,即:
void show() const; //聲明
void Stock::show() const{} //定義
分享名稱:c語言const函數(shù)形參 c語言const用法
標(biāo)題網(wǎng)址:http://chinadenli.net/article10/dshoigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信公眾號、Google、面包屑導(dǎo)航、小程序開發(fā)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)