【发布时间】:2021-09-07 05:20:59
【问题描述】:
我有一个关于未初始化变量如何在 C 中工作的问题。如果我声明一个变量然后打印它,程序应该打印一个随机值,但是我的程序几乎总是输出 0。如果我尝试声明第二个变量,程序总是输出 16 作为新的赋值。
#include <stdio.h>
int main(){
int x,y,z,t;
printf("%d %d",x,y);
}
这个程序输出 0 和 16,但是如果我添加以下代码行:y--; 就在声明变量之后但在打印它们之前,程序输出 x=15 和 y =-1,与什么完全不同的值我以前有过。为什么会这样? C如何处理未初始化的变量?
【问题讨论】:
-
具有自动存储持续时间且未初始化的变量的值是不确定的,如果
register可以与变量一起使用,则使用此类值会调用 未定义的行为。 (你的代码满足这个条件) -
你可能会觉得this answer很有趣。
标签: c variables initialization global-variables uninitialized-constant