为什么-5/2的结果打印为0?

你能说出为什么 C 中的这个语句给出 0 作为输出吗?

printf("Hello %f",-5/2);

然而

printf("Hello %d",-5/2);

将输出作为 -2

回答

两个整数的除法产生一个整数结果(int在这种情况下)。该%f格式说明期望类型的参数double。对给定的参数使用错误的格式说明符会触发未定义的行为,在这种情况下会产生错误的结果。

如果你想要一个浮点结果,至少一个操作数/必须是浮点类型,即

printf("Hello %f",-5.0/2);


以上是为什么-5/2的结果打印为0?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>