const修飾指針

今天我看了一下const修飾指針的幾種情況,總結(jié)一下:

int b = 500;
1、int const * a=&b;
2、const int *a = &b;
3、int * const a = &b;
4、const int * const a = &b

總結(jié)一句話就是,const關(guān)鍵字在*之前,修飾的指針?biāo)傅膶ο?;const關(guān)鍵字在*之后,修飾的是指針本身;所以上面情況1和2是同一種情況——表示的是指針?biāo)傅膬?nèi)容是常量。在這種情況下,不允許修改內(nèi)容。

int b = 500;
int const * a=&b;
*a=600;//錯誤?

如果我們真的要改變*a的值,可以這樣做:

int c =700;
a=&c;
cout<<*a<<endl;//結(jié)果為700;

在情況1和情況2下,因?yàn)橹皇侵羔樦赶虻膬?nèi)容是常量,但是指針本身并不是常量,所以在聲明的時候,可以不進(jìn)行初始化;也就是說

const int *a;//?

而情況3,const修飾的指針,就是說此時我們的指針是一個常量,也就是說,在初始化指針以后,我們就不可以改變指針的值。但是指針指向的內(nèi)容是可以改變的。也就是說

int b = 500;
int * const a = &b;
*a=700;
cout<<*a<<endl;//結(jié)果為700

最后一種情況,指針本身和指向的內(nèi)容都是常量,都是不可以改變的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.語言中變量的實(shí)質(zhì) 要理解C指針,我認(rèn)為一定要理解C中“變量”的存儲實(shí)質(zhì), 所以我就從“變量”這個東西開始講起吧...
    金巴多閱讀 1,979評論 0 9
  • 基本內(nèi)置類型 算術(shù)類型字符整型布爾值浮點(diǎn)數(shù) 空類型(void) 算術(shù)類型 帶符號類型和無符號類型int、short...
    2625K閱讀 3,661評論 0 1
  • 一、概述 用const限定來限定值不能被改變的變量。一個變量被const限定后,值不能被改變,只能在con...
    王一百閱讀 679評論 2 3
  • 王總離開車展坐在自己的勞斯萊斯上和朋友說:“今天那個女的怎么樣?”劉洋說:“挺好啊,怎么了?你想上她?那簡單,我現(xiàn)...
    流氓豆閱讀 549評論 5 3
  • 剛**同學(xué),湖南工程學(xué)院 自動化專業(yè),應(yīng)屆畢業(yè)生。2016-9-29 10K入職 1. 如何積攢自信 當(dāng)你坐在面試...
    嵌入式學(xué)習(xí)閱讀 315評論 0 1

友情鏈接更多精彩內(nèi)容