<分区>
请解释为什么我在这里得到输出 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);
}
标签 c
<分区>
请解释为什么我在这里得到输出 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);
}
最佳答案
你还没有初始化 es
,所以你的程序只是打印程序运行时恰好在堆栈上的随机值。
你需要这样说:
e es = c;
这将为您提供所需的 5
输出。
关于c - 对于以下程序,我只得到 2 个作为 op,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508114/