0

ここで出力 2 が得られる理由を説明してください。私の期待する o/p は 5 または 7 です。光を当ててください。ありがとうございました!

#include<stdio.h>

typedef enum {a=3, b, c, d, j}e;

void f(e *e1) {
    printf("%ld", (int)*e1);
}

main(){
    e es;
    f(&es);
}
4

1 に答える 1

4

を初期化していないesため、プログラムは、プログラムの実行時にたまたまスタックにあるランダムな値を出力しているだけです。

次のように言う必要があります。

e es = c;

5これにより、求める出力が得られます。

于 2013-08-29T10:13:56.387 に答える