关于const的实验

非主流科学家
博客专家认证
2013-11-12 07:11:55
《c专家编程》第21页上说const 为只读变量而不是常量
于是做了这个实验
#include<stdio.h>
#include<stdlib.h>
int main(void){
const int a=1;
int *b=&a;
*b=100;
printf("%d\n",a);
return 0;
}

能通过编译,但输出的结果是1;而不是100;而printf(“%d”,*b);的结果就是100;*(&a)的结果也是100;
a的地址和b变量的值确实相等,为啥呢,大家探讨一下
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
非主流科学家 2013-11-12
  • 打赏
  • 举报
回复
引用 3 楼 max_min_ 的回复:
http://blog.csdn.net/yby4769250/article/details/7359278 看看
NB
max_min_ 2013-11-12
  • 打赏
  • 举报
回复
常量折叠现象而已!很正常,没什么大惊小怪的
示申○言舌 2013-11-12
  • 打赏
  • 举报
回复
编译通不过。改成 const int * b = &a可通过。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧