【发布时间】:2017-08-03 11:57:37
【问题描述】:
看看这个程序:
int main(){
const int a_const=10;
int * const a=const_cast<int * const>(&a_const);
*a=5;
}
所以a_const的地址和指针a的值相同。
但是改变a 所指向的值,不会改变a_const。
【问题讨论】:
看看这个程序:
int main(){
const int a_const=10;
int * const a=const_cast<int * const>(&a_const);
*a=5;
}
所以a_const的地址和指针a的值相同。
但是改变a 所指向的值,不会改变a_const。
【问题讨论】:
您的程序的行为是未定义。 看起来可能是这种未定义行为的表现。
您不能尝试使用由const_cast 获得的非const 指针(或引用)来更改声明为const 的变量的值。
(如果它在这种情况下似乎有效,请尝试使用只读字符串文字的等效项 - 这将导致很多平台上的崩溃。)
【讨论】: