首页 > 编程 > C++ > 正文

C++ const 机制

2019-11-06 08:02:33
字体:
来源:转载
供稿:网友

我们都知道const是为了防止程序对所定义的变量或者其他对象进行修改,被const修饰的那个变量也就变成常量,但是我们都知道可以用指针来修改。比如下面的代码:

int main(){ const int a = 10; int *ptr2 = const_cast<int*>(&a); *ptr2 = 20; cout << a << endl;}

这时如果输出a,按道理应该为20,然而并不是这样,程序输出的a为10,如果我们分别输出&a和ptr,我们会发现他们的地址一样,并且输出*ptr结果是20,说明a已经被修改。

原因如下: C++把const看做常量,编译器会使用常数直接替换掉对a的引用,例如cout<


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选