C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 为什么编译器允许你在这里“写”一个const变量?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么你这样欺骗编译器:

const int a = 5;
*((int*)&a)=5;   // VC/armcc does not complain

当上面的“删节”相当于此:

const int *ptr2const = &a;
int *ptr = ptr2const;      // as expected error is raised here
*ptr = 5;

解决方法

C风格的强制转换允许你像你的例子一样抛弃常量.在C中,您通常会使用新的样式转换,例如static_cast<>,它们不允许您丢弃constness.只有const_cast<>允许你这样做.

大佬总结

以上是大佬教程为你收集整理的c – 为什么编译器允许你在这里“写”一个const变量?全部内容,希望文章能够帮你解决c – 为什么编译器允许你在这里“写”一个const变量?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。