可能重复:
C/C++ 更改 const 的值
以下程序:
int main()
{
const int x = 10;
int * p = (int *)&x;
*p = 12;
cout<<x<<endl;
cout<<*p<<endl;
return 0;
}
给出以下输出:
10
12
将 &x 转换为 (int *) 有什么影响,为什么 x 的值仍然是 10 ?我预计是12。
另一个疑问
为什么我们不能将 say int ** 转换为 int const ** ?而这个操作是有效的
void f(int const ** p);
void g(int const * const * p);
int main()
{
int ** p = /*....*/
f(p); //Error
g(p); //OK
}
请用合适的例子帮助我理解这一点谢谢!