0
#include<stdio.h>
int main(void) {
    int a = 123,b,c;
    if(a>300) {
        b=200;
    }
    c=4556;
    printf("b = %d\n",b);
    return 0;
}

これで、ブロックが false と評価されるかのように if ブロックが実行されるべきではありませんが、コードは b の値を 0 として出力します。 b. b が最初のケースでもガベージ値を示さなければならないことを知っている限り、なぜこれがこのように起こっているのか誰にも教えてもらえますか。

4

1 に答える 1

5

変数を初期化しない限り、それらの値が何であるかを確実に知ることはできないので、これはリモートで驚くことではありません。変数に意味のある値を含める場合bは、その値で初期化します。

于 2012-08-16T11:45:14.250 に答える