标签: c undefined-behavior
此代码打印"等于"和" 1 0"。
为什么即使1 != 0发生了这种情况?
1 != 0
if(2/2 == 2/2.0) printf("equal \n"); printf("%d %d", 2/2, 2/2.0);
答案 0 :(得分:5)
2/2.0的结果是 double 类型。但是您使用%d来打印它,这是未定义的行为。请改用%lf来打印 double 。这就是为什么你得到0这可能是调用未定义行为的结果。
2/2.0
%d
%lf
0