重複の可能性:
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になると思っていました。
別の疑問
なぜint**をintconst**にキャストできないのですか?むしろ、この操作は有効です
void f(int const ** p);
void g(int const * const * p);
int main()
{
int ** p = /*....*/
f(p); //Error
g(p); //OK
}
適切な例でこれを理解するのを手伝ってくださいありがとう!!!