#include<stdio.h>
int main(void)
{
int i=1,j=-1;
if((printf("%d",i))<(printf("%d",j)))
printf("%d",i);
else
printf("%d",j);
return 0;
}
当printf()
返回成功打印的字符数时,条件将为if(1<1)
,该值为false,但if部分已执行且输出为1 -1 1
。为什么会这样?
答案 0 :(得分:5)
我认为很明显:“1”是一个字符,“ - 1”是两个字符。一个不到两个。
答案 1 :(得分:2)
答案 2 :(得分:1)
因为打印j打印“-1”,这是两个字符。所以1&lt; 2是真的。
答案 3 :(得分:1)
对于-1
打印的字符数为2
因此,如果条件满足。