這里有一篇關(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)然我的英語語法不一定正確共苛,但是就是為了說明這么個意思判没。有些時候,從翻譯過來的字面意思理解這種問題可能真的是比較繞隅茎,那我們不妨換一下思路澄峰,用英語思維去理解,可能會好一些辟犀。