Possible Duplicate:
07001
我尝试了以下代码
#include<stdio.h>voID main(){int i; \printf('%d',i);}
结果给出了VC中的垃圾值,而tc中的垃圾值为零.
什么是正确的价值?
默认情况下,未初始化的变量的值是否为零?或者它会包含垃圾值?
接下来是一样的
#include<stdio.h> voID main(){int i,j,num;j=(num>0?0:num*num);printf("\n%d",j);}
上面代码的输出是什么?
解决方法 从技术上讲,未初始化的非静态局部变量的值是Indeterminate [Ref 1].简而言之,它可以是任何东西.访问这样一个未初始化的变量会导致未定义的行为.[参考2]
[参考1]
C99第6.7.8节初始化:
If an object that has automatic storage duration is not initialized explicitly,its value is indeterminate.
[参考2]
C99第3.18节未定义的行为:
behavior,upon use of a nonportable or erroneous program construct,of erroneous data,or of indeterminately valued objects,for which this International Standard imposes no requirements.
注意:强调我的.
总结以上是内存溢出为你收集整理的未初始化变量的价值是多少?全部内容,希望文章能够帮你解决未初始化变量的价值是多少?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)