#include<stdio.h>
int main()
{
int x;
printf("%d\n", x);
x=x>0?x:x+1;
printf("%d\n", x);
}
这里x被初始化为0,但是为什么呢?在GCC中编写并编译代码
最佳答案
使用未初始化的变量会导致未定义的行为。一个编译器可能会将变量初始化为 0
,但如果您更改编译器,甚至更改编译标志(例如使用不同的优化级别),这种情况很容易发生变化。
不要指望它。
关于c - 自动变量初始化为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29203399/