由於之前沒有系統的看過書籍,導致概念混淆,由《c++ primer》中得到,const修飾指標有兩種形態,分別是指向常量的指標(pointer to const)和常量指標(const pointer)。
ps:對之前看過此部落格的同學表示抱歉
int a = 1;
int b = 2;
const int *p = &a;
//等同於 int const *p = &a;此時const修飾的是*p , 如 *p = b;就會編譯不通過,*p只能讀,不能更改。
a = 2;
cout << *p << endl;
//通過改變變數a的值,同樣還是能改變*p的值。(感覺是廢話)
p = &b;
cout << *p << endl;
//編譯能通過,輸出結果為2,但是還是無法通過*p改變所指向位址的值。
int a = 1;
int b = 2;
*p = 3;
cout << a << endl; //編譯能通過,輸出結果為3。
常量指標和指向常量的指標
首先指出乙個錯誤,壓根就不應該有指標常量這個說法。經常聽到有關常量指標和指標常量的討論,也經常見到有關兩者區別的文章,然而,有些文章卻誤導了讀者,他們的結論根本就是錯的。例如關於指標常量和常量指標的討論,結果完全顛倒了 而其他一些文章呢,充其量只是火上加油,讓本來就很複雜的事情變得更加難於理解,例如...
常量指標和指向常量的指標
1 常量指標 指標本身的位址值不可修改,這個值是定義指標的時候確定的,以後不可再改變。定義 int const i new int i是常量,執行i 會出錯 const修飾的是i,所以i不能變。2 指向常量的指標 該指標指向的變數是不可修改的。定義 const int i new int 100 或...
常量指標和指向常量的指標
經常c 程式設計師會提到 常量指標 const pointer 其實他們想表達的意思往往是 指向常量的指標 pointer to const 真不幸,這是兩個完全不同的概念。t pt new t const t pct pt 乙個指向常量的指標 t const cpt pt 乙個常量指標這裡一定要弄...