课程
/后端开发
/C++
/C++远征之离港篇
int const *p=&x;
p=&y
为什么*p=5
2015-11-06
源自:C++远征之离港篇 3-2
正在回答
我理解int const *p=&x 相当于int const (*p)=&x,所以*p不可修改。但x不受约束可以修改,比如修改x为4之后,输出*p也为4,所以我认为这样使用const唯一的意义是禁止通过p指针修改其指向的内容。*p=5是通过其他途径修改了其指向内容的值。
*p=5后,x=5.
地址和地址中的值是不同的,就像是房间里的人和房间是一样的,*p存放的是值,如果用const修饰就不能改变其中的值,p中存放的是地址,如果用const修饰,就不能改变地址。
*p等于5之后,x打印出来又该等于什么
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通