7.逻辑操作符
下表显示了 C 语言支持的所有关系逻辑运算符。假设变量 A 的值为 1,变量 B 的值为 0,则:
运算符 |
描述 | 实例 |
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (A && B) 为假。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (A || B) 为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(A && B) 为真。 |
实例:
intmain() { inta=5; intb=20; intc ; if ( a&&b ) { printf("Line 1 - 条件为真\n" ); } if ( a||b ) { printf("Line 2 - 条件为真\n" ); } /* 改变 a 和 b 的值 */a=0; b=10; if ( a&&b ) { printf("Line 3 - 条件为真\n" ); } else { printf("Line 3 - 条件为假\n" ); } if ( !(a&&b) ) { printf("Line 4 - 条件为真\n" ); } return0; }
结果如下:
Line1-条件为真Line2-条件为真Line3-条件为假Line4-条件为真
8. 条件操作符
? : |
条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |
格式: exp1 ? exp2 : exp3
inta=10; intb= (a==1) ?20: 30; printf( "b 的值是 %d\n", b ); intb= (a==10) ?20: 30; printf( "b 的值是 %d\n", b );
结果如下:
b的值是30b的值是20
9.逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
实例:
intmain() { inta=1; intb=3; printf("%d", (a=a+b, b)); return0; }
结果如下:
通过结果可以看出,逗号表达式从左向右依次执行,但是整个表达式的值取最后一个表达式的值;
如果对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,蟹蟹三连!