为什么对一个const int指针使用const_cast,将他的值赋值给一个int,通过这个int指针改变常量的值时,编译器通过, 但是输出常量的时候仍然是原来的值,把int指针通过*解引用输出是改变之后的值
求解const_cast的底层实现原理,为什么对常量指针使用后无法改变常量的值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Minuw 2023-06-21 08:47关注
const 的机制,就是在编译期间,用一个常量代替了 data。这种方式叫做常量折叠。
常量折叠与编译器的工作原理有关,是编译器的一种编译优化。在编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表。常量折叠只对原生类型起作用,对我们自定义的类型,是不会起作用的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
- ¥50 如何将脑的图像投影到颅骨上
- ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
- ¥15 netcore使用PuppeteerSharp截图
- ¥20 这张图页脚具体代码该怎么写?
- ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
- ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
- ¥15 数字信号处理考试111
- ¥15 allegro17.2生成bom表是空白的
- ¥15 请问一下怎么打通CAN通讯