首页 > 代码库 > [C/C++]用const_cast修改const变量会得到什么结果?
[C/C++]用const_cast修改const变量会得到什么结果?
const int x=4;int& y = const_cast<int&>(x);++y;
这时访问x,x会是多少呢?
根据C++11标准7.1.6.1.4:
Except that any class member declared mutable (7.1.1) can be modified, any attempt to modify a const
object during its lifetime (3.8) results in undefined behavior. (ISO/IEC 14882:2011)
尝试通过const_cast消除const来修改x的值有程序崩溃的可能,虽然在某些平台上可能会输出4(编译期间优化)。
同样,下面的code也是不安全的:
const int x=4;int& y = (int&)x;++y;
[C/C++]用const_cast修改const变量会得到什么结果?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。