const int *p和int *const p的區別

1、const int *p

比如:

int i = 0;
const int *p = &i;
*p = 100;     //錯誤
cout << *p;   //正確

總結:可讀不可寫。可以通過*p讀取i的值,但是不能通過*p改變i的值。

2、int *const p

比如:

int i1 = 0;
int i2 = 0;
int *const p = &i1;
p = &i2;    //錯誤
*p = 100;    //正確

總結:指針初始化之後的指向地址不可改變。上述代碼中p初始化爲指向i1的地址,不能修改爲指向i2的地址。可以通過*p修改i1的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章