xcode编写C时,指针为啥不能改变const修饰的一个常量?
ISO IEC 9899 2011(C11)标准中:6.7.3 Type qualifiersThe implementation may place a const object that is not volatile in a read-only region ofstorage. Moreover, the implementation need not allocate storage for such an object if its address is never used.If an attempt is made to modify an object defined with a const-qualified type through useof an lvalue with non-const-qualified type, the behavior is undefined.人生苦短,不要在“未定义行为”上浪费时间。PS:这类问题,实际上在 stackoverflow 上总能找到一个满意的答案。----
■网友
强行修改常量的值是UB,所以编译器很可能会直接把printf("%d\", number)
优化为printf("%d\", 10)
实际上编译器的确这么做了。
推荐阅读
- C语言 指针引用数组的地址问题
- 不懂技术,不会编写程序的人当项目经理,管项目,管人,行吗
- 编写测试用例时参照实际项目还是需求文档
- 怎样用高级语言编写音乐播放器
- Minecraft中通过定义具体继承的方块类来存储方块的额外属性,咋通过编写API改进这种方法
- c++从零开始编写出一个软件是啥样的
- 既然 Markdown 语言编写的是纯文本文件,那么为啥不直接保存为 txt 文件而要使用 md 格式
- 为啥C++的this是指针而不是引用
- UAT测试用例由甲方编写还是乙方
- 有啥有趣的项目供程序员业余时间编写