C 语言中的关系表达式 与 JAVA中的关系表达式
c和JAVA中一样有==,>,<,>=,<=,!=.这几种关系连接符在C语言中由于没有布尔类型所以呢就是以非0与0作为区别。如果是0则为假。如果是非0则是真。这个其中就是主要看的是其中的二进制形式。也就是0的话就是全部是0其中的全部是0。0二进制的形式是0000000000000000这样的话就是为假。同理'\0'也为假,就是因为这个的二进制形式是00000000。剩下的其他的字符和数字全部为真。包括“asdasdsadas”这样的实行。也就是地址的形式。但是如果地址为NULL那么也为假。
#include<stdio.h>
int main()
{
int *a=NULL;
if(a)
printf("asd\n");
else
printf("dasa\n");
return 0;
}
这个样子输出的结果就是 dasa
但是当a="asdasd";时则输出的就是asd
这个样子的话在一些需要用到这些要求真假的地方,也就是需要关系表达式的地方就可以用字符数字甚至是地址这些东西来表示。比如在for(;关系表达式;);while(关系表达式);if(关系表达式);.......
与此相反JAVA中拥有布尔类型也就是专门来表达真假的类型,这就限制了那些需要用到关系表达式的地方必须是关系表达式或者是布尔值类型。
public class Asd { public static void main(String[] args){ boolean pp; if(pp=2>3) System.out.println("asdasd"+pp); else System.out.println("aaaaaaaaaaaaaaaaa"+pp); } }
可是如果定义的pp不是boolean的话pp就不能用在这个if语句中