不是。
!(0)规定结果为1。所以 !(0) == 1 成立!(0 )== 0x10 不成立每个值都是有固定的结果的, 不可能和任意值相等。虽然!任意非0值结果为0, 但反之是不成立的。
!0代表为真;一般在循环语句中表示指扮知执行循环。
扩展资料:
C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。
_Bool依然仍是整数类型,但与一般整型不同的是,_缺亮Bool变量只能赋值为0或1,非0的值都会被存储为1。
C99还提供了一个头文件 <stdbool.h> 定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。
举例:
#include <stdbool.h>
#include <stdio.h>
//唯消计算n!,n的值在main中定义
int main(void){
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
bool flag = false; //叠乘标记
int num = n; //循环次数
while( !flag ){
sum = sum * (num--);
//当num=1时结束循环
if( num == 1){
flag = true;
}
}
printf ("%d的叠乘值为 %d \n", n, sum);
return 0;
}