一段有趣的关于C++const的代码
来源:互联网 发布:fifaaol3数据库 编辑:程序博客网 时间:2024/05/22 06:44
直接上代码:
using namespace std;int main(){const int a = 1;int *p = const_cast<int*>(&a);*p = 2; cout << "value a="<< a << endl;cout << "value *p=" <<*p << endl;cout << "address a=" <<&a << endl;cout << "address p=" <<p << endl;return 0;}试图通过指针来修改一个const常量的值。贴出结果:
单看地址是一样的,没问题。可是值却不一样。怎么回事?
我们应该遵循C++中的const和non-const的语义,任何想要破坏这个语义的事情都会给我们带来未知的结果。
再来看C的一段程序:
#include <stdio.h> int main() { const int a = 1; int *p = (int*)(&a); *p = 2; printf("&a=%p\n", &a);printf("p=%p\n", p);printf("a=%d\n", a); printf("*p=%d\n", *p);return 0; }看输出结果:
在C中是可以通过指针来修改const常量的值。
0 0
- 一段有趣的关于C++const的代码
- 关于Const的一段代码
- 一段有趣的代码
- 一段很有趣的代码
- 一段有趣的C程序
- 关于+—~有意思的一段C代码
- 一段有趣的代码的分析
- 一段有趣的代码,猜生日
- 一段代码引发的有趣问题
- Javascript---有趣的一段代码---局部变量
- 一段有趣的并发concurrencyhashMap代码
- 一段有趣的C++程序
- 一段有趣的Javascript
- 一段有趣的程序
- 一段有趣的函数
- 一段代码,const,readonly,static的区别
- 关于回文的一段代码
- 一段关于webGL的代码
- 程序员面试金典——硬币表示___
- hibernate中的缓冲机制
- JAVA中Reflection(反射)三种方法forName(String className) 方法最好
- Zookeeper+Kafka+Spark streaming单机整合开发
- 基于Dubbo框架构建分布式服务【未完待续】
- 一段有趣的关于C++const的代码
- 关于 Caused by: java.lang.NoClassDefFoundError: com/alipay/api/AlipayApiException 解决办法
- python 中的闭包
- Echarts使用json异步通信
- |算法讨论|无向图割点和桥 学习笔记
- 就是为了上传图片
- 0514 js基本概念
- Hibernate_又快又准的Hibernate映射技巧
- 忙着关电脑,拔网线的时候,你不好奇什么是“比特币”吗?