【发布时间】:2020-11-09 21:01:09
【问题描述】:
在下面的代码输出中是“garbage 300”,但我希望这是“0 300”
为什么会这样?
main()
{
int a = 300, b, c ;
if ( a >= 400 )
b = 300 ;
c = 200 ;
printf ( "\n%d %d", b, c ) ;
}
在下面的代码中,它给出的预期输出为- 0 200
main( )
{
int a = 300, b, c ;
c = 200 ;
printf ( "\n%d %d", b, c ) ;
}
【问题讨论】:
-
因为
b仅在a>=400的情况下分配。事实并非如此。适当的缩进会有所帮助。 -
@Divyank Lalwani 具有自动存储持续时间的未初始化变量具有不确定的值。
-
为什么要更改问题中的代码?在这一项中,很明显您正在打印未初始化的变量 (
b)。标题中没有提到“第二个程序”。 -
0是一个完全有效的垃圾值...与-8002413217一样有效