0

我在 Windows XP 上使用 DevC++ 作为我的编译器。这是我的代码:

#include<stdio.h>
int main(void){
  int a;
  printf("%d\n", a);
  int b = a;
  a = 10;
  printf("%d %d %d", a, b, a);
  getch();
  return 0;
}

输出:

2
10 2 10

我不明白为什么变量a会得到 value 2

4

4 回答 4

4
int a;
printf("%d\n", a);

未初始化的对象具有不确定的值。访问未初始化的对象是未定义的行为。如果您尝试打印它的值,您可能会被2打印出来,42或者您的应用程序可能会崩溃。

于 2012-09-02T15:57:47.473 回答
0

变量a未由您初始化,因此它具有一些随机值。在另一个应用程序运行/计算机重新启动后,它可能等于另一个值。您必须分配一些值以确保它a等于它。

于 2012-09-02T15:58:20.043 回答
0

它必须garbage value存储在编译器为变量分配的地址中a,因为它没有被初始化。

于 2012-09-02T16:06:15.893 回答
0

这是一种未定义的行为。

我用相同的编译器在我的计算机上得到了 4334。

于 2012-09-02T16:13:47.513 回答