C++:const_cast类型转换
来源:互联网 发布:企业成本核算软件 编辑:程序博客网 时间:2024/05/21 12:02
针对const_cast,太多人在用同一个示例问同一个问题:
void main(){
}
最终输出的a,为何是3而不是5?
C++对用const定义的常数变量,不是靠地址空间中的内容来取数的,而是靠保存在符号表中的索引来取数的,因此常数变量a无论什么情况下使用都是常数3。
事实上,变量a地址空间中的内容确实是5,但即使你*(&a)来取数仍是3。你可以这样来取变量a地址空间中的内容:
或
此时输出的结果是5。
上述问题都是针对单变量常数而言的,对于结构或类,const_cast的使用与你的直观理解是无出入的。
C++提供了去除const或volatile属性的const_cast类型转换,使你可以对一常数变量进行修改,问题是你的设计为什么会导致非要对一常数变量进行修改呢?
C++的编程准则:const或volatile属性,禁止在指针或引用的类型转换中移除。
0 0
- C++:const_cast类型转换
- C++类型转换----const_cast
- 类型转换:const_cast
- C++:类型转换——static_cast和const_cast
- 【C++】强制类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast,explicit)
- [C++] 强制类型转换static_cast、dynamic_cast、reinterpret_cast和const_cast
- c++dynamic_cast、const_cast 、static_cast、reinterpret_cast强制类型转换
- C++类型转换详解--const_cast
- C++类型转换详解--const_cast
- C++类型转换详解--const_cast
- 利用const_cast进行类型转换
- C++类型转换详解--const_cast
- C++类型转换详解--const_cast
- C++类型转换详解--const_cast
- static_cast dynamic_cast const_cast reinterpret_cast 类型转换
- C++ - 类型转换 static_cast, dynamic_cast, reinterpret_cast, const_cast
- c++强制类型转换:dynamic_cast、const_cast 、static_cast
- 类型转换static_cast dynamic_cast const_cast reinterpret_cast
- 有关输出对齐格式
- android-四种基本布局
- 1001. A+B Format (20)
- Hibernate学习总结
- python使用正则表达式编写网页小爬虫
- C++:const_cast类型转换
- 多python随机数函数的分析
- 天池大数据竞赛——UI特征统计
- 注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
- nyoj-1055-小鱼儿的难题
- Activity跳转Flag详解
- 数据结构之排序_1
- yayaxueyu
- C++11新特性(原封不动转载待查)