首先把握一個原則, const修飾誰, 誰不變spa
int age = 10; 指針
int money = 200;orm
// 這裏const 修飾的是 *p1, *p1是不變的, 可是p1是可變的變量
int const * p1 = &age;margin
// 這裏const 修飾的是 p2, p2是不變的, 可是*p2 是可變的top
int * const p2 = &age; co
*p1 = 999; // 錯誤 *p1 是不能修改的錯誤
p1 = &money; // 正確const
*p2 = 999; // 正確
p2 = &money; // 錯誤 p2是不能修改的
小結: 這裏*p1能夠理解爲 不能修改age的值(p1指向的變量地址的值), 可是能夠修改p1指針的指向, 讓其指向&money(money的地址), *p2 能夠理解爲 能夠修改p2指向變量的地址的值, 可是不能修改p2的指向, 對應着比較好理解