const int a = 3;
int* p = (int *)&a;
*p = 4;
printf("a-------%d------\n", a);
printf("*p-------%d------\n", *p);
printf("&a-------%d------\n", (int)&a);
printf("p-------%d------\n", (int)p);
输出:
a-------3------
*p-------4------
&a-------1606416268------
p-------1606416268------
问题是 const
修饰a
变量后,a
不能修改,但是可以隐式修改a
的值,就是用指针。 我用指针修改了值,为什么输出的时候 a
没有改变。*p
的值改变了。
看到过这个问题,给个链接:http://www.zhihu.com/question...