算数运算符
双目:
1 + 2
这样操作两个数
的运算符单目:
-1
这样表示的是负一
,只操作一个数
运算符 | 名称 |
---|---|
+ | 加法运算符(双目) |
- | 减法运算符(双目) |
* | 乘法运算符(双目) |
/ | 除法运算符(双目) |
% | 求余运算符(双目) |
+ | 正号运算符(单目) |
- | 负号运算符(单目) |
类型转换
写法:
(int)3.9
这是强制转换
#include <stdio.h> int main() { // 类型转换 printf("转换类型 %d\n",(int)3.9); }
关系运算符
关系运算符都是双目运算符
在C语言中的关系运算符的优先级大小
关系表达式
#include <stdio.h> int main() { int a = 1 < 2; printf("%d\n", a); return 0; }
逻辑运算符
运算符 | 含义 | 优先级 | 举例 | 说明 | |
---|---|---|---|---|---|
! |
非 | 高 | !a |
如果 a 为真,!a 就为假;反之 | |
&& |
与 | 中 | a && b |
a,b 同为 真 才为真 ;a,b 有一个 假 就为假 ; |
|
ll |
或 | 低 | a ll b |
a,b 同为 假 才为假 ; a,b 有一个 真 就为真 ; |
逻辑表达式
#include <stdio.h> int main() { printf("结果 %d \n", 3 > 1 && 1 < 2); printf("结果 %d \n", 3 + 1 || 2 == 0); printf("结果 %d \n", !('a' + 'b')); printf("结果 %d \n", !0 + 1 < 1 || !(3 + 4)); return 0; }
短路运算(典型逻辑运算)
#include <stdio.h> int main() { int a = 3, b = 5; ( a = 0 ) && ( b = 3 ); printf("a = %d, b = %d\n", a, b); ( a = 1 ) || ( b = 4 ); printf("a = %d, b = %d\n", a, b); return 0; }
运行结果
a = 0, b = 5 a = 1, b = 5
解释
#include <stdio.h> int main() { int a = 3, b = 5; // 与 运算,( a = 0 ) 为假,不管后面是什么结果都是假,所以就不会向后执行了 ( a = 0 ) && ( b = 3 ); printf("a = %d, b = %d\n", a, b); // 非 运算, ( a = 1 ) 为真,后面是什么都不影响结果的真,所以也不会往后运算了 ( a = 1 ) || ( b = 4 ); printf("a = %d, b = %d\n", a, b); return 0; }