指針常量與常量指針

這里有一篇關(guān)于利用順時針解讀的文字,按照這個方法理解了以后,再去區(qū)分指針常量與常量指針的定義應(yīng)該不難。

http://c-faq.com/decl/spiral.anderson.html

例一:

    const int * p1 = &a; 
    p1 = &b; //正確
    //*p1 = 100;  報錯

const修飾的是指針,指針指向可以改,指針指向的值不可以更改
按照文章中介紹的方法去理解:

  • p1 is a pointer
  • p1 is a pointer to int
  • p1 is a pointer to int which is const

例二:

    int * const p2 = &a;
    //p2 = &b; //錯誤
    *p2 = 100; //正確

const修飾的是常量,指針指向不可以改,指針指向的值可以更改按照文章中介紹的方法去理解:

  • p2 is const
  • p2 is const pointer
  • p2 is a const pointer to int

例三:

    const int * const p3 = &a;

const既修飾指針又修飾常量
照文章中介紹的方法去理解:

  • p3 is const
  • p3 is const pointer of int
  • p3 is const pointer of const int

當(dāng)然我的英語語法不一定正確,但是就是為了說明這么個意思。有些時候,從翻譯過來的字面意思理解這種問題可能真的是比較繞,那我們不妨換一下思路,用英語思維去理解,可能會好一些。

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

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