if 条件中的 printf 语句

Nir*_*osh 2 c printf

谁能解释一下这是如何工作的,输出是 A3,但它怎么会打印 3

#include <stdio.h>

int main() {
    int i;
    if(printf("A"))
        i=3;
    else
        i=5;
    printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*CAT 14

printf() 成功时返回字符数,失败时返回负值。

因此,如果printf("A")成功,它将返回1

在 C 中,除此之外的值0都被视为真,因此会i=3;被执行。