p=&y后,*p为y的值,那么x会更新为5么?
p=&y后,*p为y的值,那么x会更新为5么?
p=&y后,*p为y的值,那么x会更新为5么?
2015-12-16
p是指针,且不是const指针,也就是说你可以更改p的指向,让p指向其他int变量。
x和y是两个不相关的变量,一开始时p是指向x的。
p=&y; 这一语句你让p指向y这个变量,那么再*p得到就是y,与x完全没有关系了。
C++是一门强类型的语言,变量的所有行为都与它的类型有关。p的类型声明为 int const *p ,这里的const修饰的是前面的int,也就是说,p所指的对象是const int的,那么*p得到的对象的类型也被当作是const int的,所以才不能被修改。这与p到底指向什么无关,这样的行为只与p自己的类型有关。
“但可以通过改变p来改变*p” *p始终是不可修改的。你所见到的前后两个*p值不同,完全是因为p在前后分别指向了不同的对象x和y,x和y的值本就不同而已。
举报