c++中的const

来源:互联网 发布:数据库实用教程答案 编辑:程序博客网 时间:2024/06/08 06:51

在c中const只是一个摆设,并没有能够做到不变,如下代码所示:

const int a = 10;

int *p = (int*) &a;

*p = 2;

std::cout << a << std::endl;

将会输出2,因为c是弱类型的


但是在c++中,上述代码的结果为 10,为什么呢,c++编译器会做优化,

办a加入常量区,虽然内存中的值的确是改变了,但是它不会从中取值,

而是从常量区中取出了,所以被const修饰的是一定不会改变的

0 0
原创粉丝点击