最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中的const限定符的使用和作用

 更新時間:2023年05月08日 09:11:17   作者:iukam  
C++ 中的 const 限定符用于聲明不可變量,即在變量聲明時指定該變量的值不可修改。它的使用可以幫助程序員避免一些常見的編程錯誤,如誤修改不應(yīng)該被修改的變量的值等

const滿足定義一種變量在被設(shè)置初始值后它的值不能再次被改變。

在默認狀態(tài)下,const對象僅在文件內(nèi)有效。

如果需要在不同文件下共享需要添加關(guān)鍵字extern,這樣只需要定義一次就夠了。

extern const int bufSize;

1、const 的引用

把引用綁定到const上,和其他對象使用一樣,最大的區(qū)別在于對常量的引用不能被用作他所修改的綁定對象:

const int ci=1024;
const int &rl=ci;//正確:引用及其對應(yīng)的對象都是常量
rl=42;//錯誤:rl是對常量的引用
int &r2=ci;//錯誤:試圖讓一個非常量引用指向一個常量對象

ci不允許賦值,當然也不可能通過引用去改變ci;

初始化和對const的引用

引用類型必須與其所引用對象的類型一直,但是有兩個例外:

1)一個是初始化常量引用時允許任意表達式作為初始值,只要該表達式的結(jié)果能轉(zhuǎn)化成引用的類型即可。

int i=42;
const int &rl=i;//正確:允許將const int&綁定到一個普通int對象上
const int &r2=42;//正確:r2是一個常量引用
const int &r3=rl*2;//正確:r3是一個常量引用
int &r4=rl*2;//錯誤:r4是一個普通非常量引用

對const的引用可能引用一個并非const對象

int i=42;
int &rl=i;//引用r1綁定到一個i對象上
const int &r2=i;//r2也綁定對象i,但不允許通過r2修改i值
r1=0;//r1并非常量,i的值修改為0
r2=0;//錯誤:r2是一個常量引用

2、指針和const

  • 與引用一樣,也可以令指針指向常量或非常量。
  • 類似與常量引用,指向常量的指針不能用于改變其所指對象的值。
  • 和常量引用一樣,指向常量的指針也沒有規(guī)定其所指的對象必須是一個常量。

所以,要想存放常量對象的地址,只能使用指向常量的指針:

const double pi=3.14;// pi是個常量,它的值不能改變
double *ptr=π//錯誤:ptr是一個普通指針
const double *cptr=π//正確:cptr可以指向一個雙精度常量
*cptr=42;//錯誤:不能給*cptr 賦值

指針的類型必須與其所指對象類型一致,但是有兩個例外:

1、允許令一個指向常量的指針指向一個非常量對象;

double dval=3.14;
cptr=&dval;//正確:但是不能通過cptr改變dval的值

const 指針

常量指針必須初始化,而且一旦初始化完成,則它的值(也就是存放在指針中的那個地址)就不能在改變了。

指針是一個常量時,可以通過指針修改其所指對象的值,這樣做完全依賴于所指對象類型。

*pip=2.72;//錯誤:pip是一個指向常量的指針
if(*curErr)//如果curErr所指的對象的值不為0
{
	errorHandler();
	*curErr=0; //正確:把curErr所指的對象的值重置
}

3、頂層const

  • 頂層 const (top-level const) 表示指針本身是個常量;
  • 底層 const (low-level const) 表示指針所指的對象是一個常量;

4、constexpr和常量表達式

  • 常量表達式:是指值不會改變并且在編譯過程就能得到計算結(jié)果的表達式。顯然,字面值是常量表達式,用常量表達式初始化的const對象也是常量表達式。
  • constexpr 變量 :在C++11 新標準規(guī)定,允許將變量聲明為 constexpr 類型以便編譯器來驗證變量的值是否是一個常量表達式。
  • 字面值類型:指簡單易見的數(shù)據(jù)類型,比如:算術(shù)類型、引用和指針等。
  • 指針和 constexpr :必須申明,在constexpr聲明中定義了一個指針,限定符constexpr僅對指針有效,對指針所指的對象無關(guān):
const int *p=nullptr;//p是一個指向整型常量的指針
constexpr int *q=nullptr;//q是一個指向整數(shù)的常量指針

與其他常量指針類似,constexpr 指針既可以指向常量也可以指向一個非常量。

到此這篇關(guān)于C++中的const限定符的使用和作用的文章就介紹到這了,更多相關(guān)C++ const限定符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于C++制作一個簡單的跑酷游戲

    基于C++制作一個簡單的跑酷游戲

    這篇文章主要為大家詳細介紹了如何利用C++制作一個簡單的跑酷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-06-06
  • Qt如何自定義滑動條

    Qt如何自定義滑動條

    這篇文章主要介紹了Qt如何自定義滑動條問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解Qt如何使用QtWebApp搭建Http服務(wù)器

    詳解Qt如何使用QtWebApp搭建Http服務(wù)器

    這篇文章主要為大家詳細介紹了Qt如何使用QtWebApp搭建Http服務(wù)器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2024-12-12
  • C語言結(jié)構(gòu)體字節(jié)對齊的實現(xiàn)深入分析

    C語言結(jié)構(gòu)體字節(jié)對齊的實現(xiàn)深入分析

    這篇文章主要介紹了C語言結(jié)構(gòu)體字節(jié)對齊的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-10-10
  • C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用

    C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用

    本文主要介紹了C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++?STL?中的數(shù)值算法示例講解

    C++?STL?中的數(shù)值算法示例講解

    本片文章講解了C++STL?中的數(shù)值算法,包含iota、accumulate、adjacent_difference、inner_product、partial_sum這些方法的使用,感興趣的朋友來看看吧<BR>
    2022-04-04
  • 基于QT設(shè)計一個春聯(lián)自動生成器

    基于QT設(shè)計一個春聯(lián)自動生成器

    春節(jié)是中國最隆重的傳統(tǒng)節(jié)日,一到過年家家戶戶肯定是要貼春聯(lián);在春節(jié)前夕,會用大紅紙張,加上濃墨書寫祝福詞語。本文將利用Qt框架設(shè)計一個春聯(lián)自動生成器,需要的可以參考一下
    2022-01-01
  • C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細代碼

    C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細代碼

    這篇文章主要介紹了C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細代碼,代碼簡單易懂,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 淺談c++ 字符類型總結(jié)區(qū)別wchar_t,char,WCHAR

    淺談c++ 字符類型總結(jié)區(qū)別wchar_t,char,WCHAR

    下面小編就為大家?guī)硪黄獪\談c++ 字符類型總結(jié)區(qū)別wchar_t,char,WCHAR。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C語言實現(xiàn)折半查找法(二分法)

    C語言實現(xiàn)折半查找法(二分法)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)折半查找法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

宜丰县| 吉木萨尔县| 万州区| 南华县| 五河县| 阜阳市| 吉安县| 丽江市| 永寿县| 若尔盖县| 得荣县| 崇仁县| 德格县| 营山县| 琼结县| 石阡县| 邹平县| 内丘县| 遵化市| 德格县| 左云县| 贵德县| 江山市| 房产| 舞钢市| 安远县| 河津市| 河源市| 微博| 天全县| 姜堰市| 易门县| 锡林浩特市| 岑溪市| 聂荣县| 神农架林区| 济源市| 开阳县| 宜君县| 石楼县| 突泉县|