const:我想在小星星左边!
指针:呃呃呃呃,那我这个房东很憋屈啊,虽然我有很多套房子可以挑着住,可是吧我那个讨厌的租客他会一直跟着我的...改也改不掉。
const:那我在小星星右边吧!
指针:我考虑考虑。虽然租客可以天天换,可是我要在一套房子里住到天荒地老了。这好像也划不来...
int main()
{
int price = 10;
const int* p = &price;
p = 0x11223344;//我可以随便换房子啦!海景房我来啦~嘿嘿
*p = 20;//err 不可以随意改房间的租金了
int price = 10;
int* const p = &price;
*p = 200;//我可以随意修改租金,日入过万不是梦
p = 0x11223344;//err 我不可以换房子
return 0;
}
总结:
1、const在*左边,修饰的是*p,即限制了指针,表示的是指针所指向的内容不能通过指针p修改,意思就是通过指针找到的内容绝对不可以变。可以改变p所指向的地址
2、const在*右边,修饰的是p指针变量,即限制了指针变量,表示的是指针变量本身不能修改,但是指针所指向的内容可以通过指针p来修改。