-4
#include <stdio.h>

int main() {
    if (~0 == 1)  
        printf("yes\n");
    else
        printf("no\n");
}

为什么if声明是错误的?谁能解释一下?

4

2 回答 2

1

~二进制补码运算符是一元的,具有“翻转”位的效果。

所以当你这样做时,~0 == 1它会检查-1 == 1哪个是假的

于 2021-03-10T06:49:39.890 回答
-2

~0 等于 -1,而不是 1。

于 2021-03-10T06:47:09.450 回答