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変数が値を取得する理由がわかりません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初期化されていないため、 variable に対してコンパイラが割り当てるアドレスに格納する必要がaあります。

于 2012-09-02T16:06:15.893 に答える
0

これは未定義の動作です。

同じコンパイラを使用して、コンピューターで 4334 を取得しました。

于 2012-09-02T16:13:47.513 に答える