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

c++ primer中的const限定符

 更新時(shí)間:2020年05月22日 09:28:56   作者:小鵬  
這篇文章主要介紹了c++ primer中的const限定符,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

const 限定符

 const是一種類型修飾符,用于說明永不改變的對象。const對象一旦定義,就無法再賦新值,所以必須被初始化。

例:const int bufsize = 512;

它的值一旦定義就不能被改變,并且默認(rèn)情況下,僅對文件內(nèi)有效。

如果要在多個文件中共享const對象,則需要在定義和聲明前都加extern;

初始化和對const的引用

例:

const int ci = 1024;
const int &r1= ci;
r1 = 42; // 值不可以被改變
int &r2 = ci; //錯誤,非常量引用不可以指向常量對象。
int i=42;
const int &r1 = i;
const int &r2 = 42;
const int &r3 = r1 * 2;
// 以上表達(dá)都是正確的,允許一個常量引用綁定非常量對象、字面值,甚至是個一般表達(dá)式。
int &r4 = r1*2; // 錯誤;r4不是一個常量引用,不可以用常量引用來初始化。

下面例外的情況:

double dval =3.14;
const int &r = dval;

上面的表達(dá)式是正確的,然而直接如下是錯誤的;

double dval= 3.41;
int &r = dval; // double類型的引用不可以是int類型。
// 原因:引用的目的是想通過引用來改變dval的值,否則要給r賦值干嘛,所以c++規(guī)定是違法的。

原因是在賦給常量引用時(shí),其后常量引用的值就不能被改變,也就無所謂通過引用來改變dval的值了。在編譯時(shí)上述代碼會變成如下形式:

const int temp = dval;
const int &r = temp;

const 指針:

int errNumb = 0;
int *const curErr = &errNumb; // curErr將一直指向errNumb // 指針本身是一個常量并不意味著不能通過指針修改其所指對象的值//這地方是指curErr自己存儲的地址不能改變。 
const double pi = 3.14159;
const double *const pip = &pip; //pip是一個指向常量對象的常量指針

頂層const

頂層const表示指針本身是一個常量;

底層const指針?biāo)傅膶ο笫且粋€常量。

int i = 0;
int *const p1 = &i; //不能改變p的值,這是一個頂層const
const int ci = 42; //不能改變ci的值,這是一個頂層const
const int *p2 = &ci; //允許改變p2的值,這是一個底層的const
const int *const p3 = p2; //靠右的const是頂層的const,靠左的const是底層的const
const int &r = ci; // 用于聲明引用的const都是底層的const。

總結(jié)

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

相關(guān)文章

  • C語言線性代數(shù)算法實(shí)現(xiàn)矩陣示例代碼

    C語言線性代數(shù)算法實(shí)現(xiàn)矩陣示例代碼

    這篇文章主要為大家介紹了使用C語言線性代數(shù)的算法來實(shí)現(xiàn)矩陣示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • C++異常處理方式實(shí)例詳解(超級詳細(xì)!)

    C++異常處理方式實(shí)例詳解(超級詳細(xì)!)

    程序有時(shí)會遇到運(yùn)行階段錯誤,導(dǎo)致程序無法正常執(zhí)行下去,c++異常為處理這種情況提供了一種功能強(qiáng)大的而靈活的工具,下面這篇文章主要給大家介紹了關(guān)于C++異常處理方式的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MFC實(shí)現(xiàn)連連看游戲之消子算法

    MFC實(shí)現(xiàn)連連看游戲之消子算法

    這篇文章主要為大家詳細(xì)介紹了MFC實(shí)現(xiàn)連連看游戲之消子算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語言中如何利用循環(huán)嵌套輸出一個菱形

    C語言中如何利用循環(huán)嵌套輸出一個菱形

    這篇文章主要介紹了C語言中如何利用循環(huán)嵌套輸出一個菱形問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于Linux系統(tǒng)調(diào)用--getrlimit()與setrlimit()函數(shù)的方法

    基于Linux系統(tǒng)調(diào)用--getrlimit()與setrlimit()函數(shù)的方法

    本篇文章是對在Linux系統(tǒng)中調(diào)用getrlimit()與setrlimit()函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C/C++中線程基本概念與創(chuàng)建詳解

    C/C++中線程基本概念與創(chuàng)建詳解

    線程是在進(jìn)程中產(chǎn)生的一個執(zhí)行單元,是CPU調(diào)度和分配的最小單元,其在同一個進(jìn)程中與其他線程并行運(yùn)行,他們可以共享進(jìn)程內(nèi)的資源。本文就和大家一起聊聊線程基本概念以及如何創(chuàng)建多線程,需要的可以參考一下
    2022-09-09
  • C++ MD5的源碼實(shí)例詳解

    C++ MD5的源碼實(shí)例詳解

    這篇文章主要介紹了C++ MD5的源碼實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C語言與C++中const的用法對比

    C語言與C++中const的用法對比

    C語言中的const與C++有很大的不同,在C語言中用const修飾的變量仍是一個變量,表示這個變量是只讀的,不可顯示地更改,而在C++中用const修飾過后,就變成常量了
    2022-04-04
  • C 語言進(jìn)制之間的轉(zhuǎn)換

    C 語言進(jìn)制之間的轉(zhuǎn)換

    本篇文章主要介紹了C語言進(jìn)制之間的轉(zhuǎn)換,舉例說明并附圖片,幫助大家理解,希望對大家有所幫助
    2016-07-07
  • 一文搞懂c++中的std::move函數(shù)

    一文搞懂c++中的std::move函數(shù)

    這篇文章主要介紹了c++中的std::move函數(shù),在探討c++11中的Move函數(shù)前,先介紹兩個概念(左值和右值),對c++?std::move函數(shù)相關(guān)知識感興趣的朋友一起看看吧
    2022-07-07

最新評論

和平区| 雷州市| 凉城县| 新巴尔虎左旗| 凤城市| 泸水县| 湄潭县| 象州县| 武川县| 荔浦县| 赤城县| 永新县| 洛川县| 沁阳市| 临沧市| 石柱| 新野县| 建水县| 新营市| 浙江省| 中山市| 曲麻莱县| 昌邑市| 改则县| 淮安市| 胶州市| 延川县| 洛扎县| 永年县| 关岭| 香港| 万安县| 桐乡市| 绥滨县| 张家口市| 侯马市| 和平区| 嘉义县| 萨迦县| 大悟县| 金华市|