关于输出的困惑

Par*_*ita 1 c

#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;
}
Run Code Online (Sandbox Code Playgroud)

作为printf()回报成功打印的字符数,条件将if(1<1)是假的,但如果执行部和输出1 -1 1.为什么会这样?

Fre*_*örk 5

我认为很明显:"1"是一个字符," - 1"是两个字符.一个不到两个.