不是C中的整数

roh*_*t10 -4 c

#include <stdio.h>
int main()
{
    int i;

    i=1;
    printf("%d ",!i);

    i=5;
    printf("%d ",!i);

    i=0;
    printf("%d\n",!i);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在C中得到以下输出: 0 0 1

输出背后的逻辑是什么?

jxh*_*jxh 6

在C中,任何非零值都被认为是真值.因此,将逻辑否定!转换为0.合乎逻辑的否定01.