【发布时间】:2015-08-21 12:54:04
【问题描述】:
为什么在 DevC++ 中 i2 的输出为 1,而在其他地方却为 0?
#include <stdio.h>
int main(void) {
int i1,i2;
char c1,c2;
float f1,f2;
long l1,l2;
double d1,d2;
printf("\n%d %d",i1,i2);
printf("\n%c %c",c1,c2);
printf("\n%d %d",f1,f2);
printf("\n%l %l",l1,l2);
printf("\n%lf %lf",d1,d2);
return 0;
}
【问题讨论】:
-
还有一个关于同一问题的问题:stackoverflow.com/questions/32140438/…
-
更多垃圾。除了未初始化的自动 UB,还有一个浮点 UB 上的 printf("%d....'。
-
我投票决定将此问题作为题外话结束,因为 OP 想要解释一个 14 行程序中的两个不同的 UB。这是多次重复的作业垃圾,对未来的 SO 访问者的使用为零或负数。
标签: c local-variables