混淆关于输出
问题描述:
#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)
其是假,但如果部分被执行,且输出是1 -1 1
。为什么发生这种情况?混淆关于输出
答
我认为这很明显:'1'是一个字符,'-1'是两个。一个不到两个。
答
由于打印j打印“-1”,这是两个字符。所以1 < 2是正确的。
答
对于-1
打印的字符数是2
因此如果条件满足。
thnx ..我明白了。我有点困惑..所以thnx的答案。 – Parikshita 2010-10-07 07:01:29