在日常使用中,发现如下
#include <stdio.h>
int main()
{
_Bool a;
if(a==0)
printf("1");
return 0;
}
如果我们按位取反:a=~a;
#include <stdio.h>
int main()
{
_Bool a;
if(a==0)
printf("1");
a=~a;
if(a==0)
printf("1");
if(a==1)
printf("2");
return 0;
}
结果如下:这
但是在进行取反:
#include <stdio.h>
int main()
{
_Bool a;
if(a==0)
printf("1");
a=~a;
if(a==0)
printf("1");
if(a==1)
printf("2");
a=~a;
if(a==0)
printf("1");
if(a==1)
printf("2");
return 0;
}
到这里是不是会迷茫起来了,这里可能是原始问题吧,建议使用
a= a? 0:1;
这样三元运算符来代替按位取反