课程
/后端开发
/C++
/C++远征之离港篇
int a=10;
const *p=&a;
令p=&b(b=1),那么*p=?
2015-12-17
源自:C++远征之离港篇 3-1
正在回答
const int * p; 不能 改变*p 就是不能*p=2 等等之类的int * const p; 不能 改变p 就是不能p=&x 等等之类的
const int * p;我理解的是 p指针的变量地址可以随意变,但不可以用p指针改变所指向变量的值
你那里*p = 1
但不可以再用*p = 3 这样编译会报错
*p = 1;常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也就是说常量指针可以被赋值为变量的地址,之所以叫做常量指针,是限制了通过这个指针修改变量的值。
sorry,我上面那条回答最后一句答错了,请忽略...
const int * p; //p指针所指向变量的值不可变int * const p; //p指针所指向的变量地址不可变
所以你那里的p是不可以再赋一个新的变量地址的。这句p=&b 会报错的
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通