更改变量后的奇怪输出

时间:2012-09-02 15:56:12

标签: c

我在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获得值2

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这是一种未定义的行为。

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