5.1 逻辑表达式
5.1.1 关系运算符
关系运算符的优先级统统小于算术运算符。
note
- 运算:
i<j<k中,其表达的意思是(i<j)<k
#include <stdio.h>int main(){int i=1,j=2,k=3;// (i<j)<k// i<j-> true,也就是 1// 1<kif(i<j<k){printf("yes\n");}// i>j-> false,也就是 0// 0<kif(i>j<k){printf("yes\n");}return 0;}// 输出,最终的结果是一样的yesyes
5.1.3 逻辑运算符
对于逻辑运算符 && 和 || ,都具有“短路现象”。即,在运算时先运算左侧的表达式,如下方的--i。如果左表达式的结果可以判定&&,||的最终结果,那么将不进行右表达式的运算。
#include <stdio.h>int main(){int i=1,j=2,k=3;// 因为由 --i 可得整个运算结果为 0,所以不进行 j++ 的运算if((--i&&j++)==0){printf("%d",j);}return 0;}// 输出2
5.2 if 语句
5.2.7 布尔值
在 c 语言中,没有直接对布尔值的关键字设置,但我们可以通过一些间接的方式来设置
// 宏定义方式一#include <stdio.h>#define TRUE 1#define FALSE 0int main(){int i=1;if(i == TRUE){printf("true");}if(i == FALSE){printf("false");}}// 输出true// 宏定义进行类型定义#include <stdio.h>#define BOOL intint main(){BOOL i = 1;if(i==1){printf("%d",i);}if(i==0){printf("%d",i);}}// 输出1
