“非0即真”
在判断中我们通常认定返回0即代表判断结果为“False/假”;反之返回1即代表“True/真”。
而在c语言中,任何范围内的非零数字都可以认定判断结果为“真”。
非0数
非0数为真的案例非常简单。
#include <stdio.h>
int main(){
if (-1) printf("!!");
return 0;
}
运行结果如下:
"e:\c\Pratices\"对判断中“非0即1的特点思考”
!!
[Done] exited with code=0 in 0.294 seconds
字符
在c中字符在char字符变量中以acsll编号储存:
#include <stdio.h>
int main(){
char test = 'A';
if (test) printf("Hello There");
return 0;
}
结果如下:
Hello There
[Done] exited with code=0 in 0.294 seconds
其中'A'所对应的编号为65。
字符串
c语言中字符串的储存方式有所不同,我们需要使用字符串指针来定义一个字符串变量。
#include <stdio.h>
int main(){
char *test = "Tdx";
if (test) printf("Good Days");
return 0;
}
运行结果如下:
Good Days
[Done] exited with code=0 in 0.288 seconds
综上
无论是非1数字、字符、还是字符串,它们都有一种数字形式的储存方式,而这些方式所对应的编码既是我们常见的“非0”。所以“非零即真”的本质是将非零的数字认定为结果“真“