This question already has answers here:
What is Undefined Behaviour in C? [duplicate]
(5个答案)
在8个月前关闭。
我在GCC编译器中得到32765,代码块在某处不打印任何内容,并显示0。
或以下方式
那么实际输出将为0。因为变量
(5个答案)
在8个月前关闭。
#include<stdio.h>
int main()
{
int x, y, z;
z = x+y;
printf("%d", z);
return 0;
}
我在GCC编译器中得到32765,代码块在某处不打印任何内容,并显示0。
最佳答案
如果局部变量(具有自动存储期限)不具有静态存储期限,则不会隐式初始化。
使用具有不确定(甚至陷阱)值的未初始化变量会导致未定义行为。
但是,如果您要通过以下方式更改程序
#include<stdio.h>
int x, y;
int main( void )
{
int z;
z = x + y;
printf( "%d", z );
return 0;
}
或以下方式
#include<stdio.h>
int main( void )
{
static int x, y;
int z;
z = x + y;
printf( "%d", z );
return 0;
}
那么实际输出将为0。因为变量
x
和y
具有静态存储持续时间,并且由编译器隐式初始化为零。10-08 15:47