摘要:
针对const_cast,太多人在用同一个示例问同一个问题:void main(){const int a = 3;const int *pc = &a;int *p = const_cast(&a);*p = 5;printf("%d,%d,%d",*p,*pc,a); //结果是 5,5,3}最终输出的a,为何是3而不是5?C++对用const定义的常数变量,不是靠地址空间中的内容来取数的,而是靠保存在符号表中的索引来取数的,因此常数变量a无论什么情况下使用都是常数3。事实上,变量a地址空间中的内容确实是5,但即使你*(&a)来取数仍是3。你可以 阅读全文
posted @ 2014-04-03 18:03 网名还没想好 阅读(252) 评论(0) 推荐(0) 编辑