日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++的const限定符

發(fā)布時(shí)間:2023/12/13 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++的const限定符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

const限定符總是讓人很頭疼,下面講解一下幾個(gè)比較容易混淆的概念:

  • 對(duì)常量的引用(常量引用):
    一般情況下,引用的類型要與其所引用的對(duì)象的類型一致,其中的例外情況就是,當(dāng)初始化常量引用時(shí),允許用任意表達(dá)式作為初始值,只要改表達(dá)式能轉(zhuǎn)換成引用的類型即可。
  • const int i = 1; const int &ri = i; int i = 42; const int &r1 = i; const int &r2 = 42;
  • 指向常量的指針
    和引用類似,一般情況下,指針的類型應(yīng)該與其指向的對(duì)象的類型一致,但是允許一個(gè)指向常量的指針指向一個(gè)非常量對(duì)象。
  • const int i = 4; const int *cptr = &i; int a = 1; cptr = &a;
  • 常量指針
    由于指針本身就是一個(gè)對(duì)象,因此可以定義一個(gè)指針為常量指針,必須被初始化。當(dāng)常量指針指向一個(gè)對(duì)象時(shí),那么這個(gè)指針永遠(yuǎn)只能指向這個(gè)對(duì)象,但是被指向的對(duì)象的值能否改變,取決于被指向的對(duì)象本身是否是一個(gè)常量。
  • int i = 1; int *const cp = &i;//cp永遠(yuǎn)指向i, i = 2;//由于i是非常量,其值可以改變 const int c = 2; const int *const p = &c;//p是一個(gè)指向常量的常量指針 c = 1;//錯(cuò)誤,c為常量,其值不能被改變 p = &i;//錯(cuò)誤,p是一個(gè)常量的指針,其指向不能改變
  • 頂層const與底層const
    頂層const表示指針本身就是一個(gè)常量,而底層const表示指針?biāo)傅膶?duì)象是一個(gè)常量。
  • int i = 0; int *const pi = &i;//pi的值不能被改變,pi為頂層const const int ci = 42;//ci是一個(gè)int類型的常量,值不能被改變,為頂層const const int *p2 = &ci;//p2是一個(gè)指向常量的指針,p2的值可以改變,所以p2為底層const const int *const p3 = p2;//靠右的const是頂層const,靠左的const是底層const const int &r = ci;//用于聲明引用的const都是底層const

    總結(jié)

    以上是生活随笔為你收集整理的C++的const限定符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。