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 回答