未初始化变量的价值是多少?

未初始化变量的价值是多少?,第1张

概述参见英文答案 > (Why) is using an uninitialized variable undefined behavior?                                    7个 Possible Duplicate: 07001 我尝试了以下代码 #include<stdio.h>void main(){int i; \printf('%d',i); 参见英文答案 > (Why) is using an uninitialized variable undefined behavior?                                    7个

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.

注意:强调我的.

总结

以上是内存溢出为你收集整理的未初始化变量的价值是多少?全部内容,希望文章能够帮你解决未初始化变量的价值是多少?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存