免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2976 | 回复: 14

[C] 有关赋值 [复制链接]

论坛徽章:
0
发表于 2010-05-15 20:46 |显示全部楼层
在c中定义变量而没有赋值给它,编译器是不是会分配随机值给它
例如
    int i,m;
    printf("%d\n",i+m);
打印出144888911

论坛徽章:
0
发表于 2010-05-15 20:52 |显示全部楼层
局部变量是随机的

论坛徽章:
0
发表于 2010-05-15 20:56 |显示全部楼层
应该是栈里面的内容

论坛徽章:
0
发表于 2010-05-16 04:02 |显示全部楼层
"undefined"

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2010-05-16 06:37 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-05-16 08:32 |显示全部楼层
回复 1# atei


   
编译器是不是会分配随机值给它


不是编译器, 而是分配给它们的空间并未规定要初始化,所以是随机的

论坛徽章:
0
发表于 2010-05-16 09:15 |显示全部楼层
回复 1# atei


    只会给这个变量在栈上预留了地址空间,而地址空间里面的值到底是多少,没人知道.
    这个地址空间是编译器留还是OS留?

论坛徽章:
0
发表于 2010-05-16 11:19 |显示全部楼层
局部变量,编译器只是在栈上分配空间。简单的做做%esp的减法而已。至于分配的地址里面是什么,就不知道了。

论坛徽章:
0
发表于 2010-05-16 11:36 |显示全部楼层
对于全局变量 编译器会初始化为0
  对于静态变量 系统会初始化为0

论坛徽章:
0
发表于 2010-05-24 16:39 |显示全部楼层
好像不是随机,而是未定义!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP