请解释为什么我在这里获得输出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);
}
答案 0 :(得分:4)
您尚未初始化es
,因此您的程序只是打印程序运行时恰好在堆栈上的随机值。
您需要说出类似的内容:
e es = c;
这将为您提供所需的5
输出。