1、概括表格
| 运算符 |
具体操作 |
| 算术运算符 |
+ - / * % ++ – |
| 赋值运算符 |
= |
| 关系运算符 |
>,<,>=,<=,==,!= |
| 逻辑运算符 |
&&,,! |
| 位运算符 |
&, |
,^,~,>>,<<, |
| 三目条件运算符 |
?: |
| 扩展赋值运算符 |
+=,-=,*=,/= |
2、逻辑运算符
2.1、逻辑与 &&
| A |
&& |
B |
result |
| true |
&& |
false |
false |
| true |
&& |
true |
true |
| flase |
&& |
false |
flase |
| flase |
&& |
true |
true |
2.2、逻辑或||
| A |
|
B result |
| true |
|
false true |
| true |
|
true true |
| flase |
|
false flase |
| flase |
|
true true |
2.3、逻辑取反!
| A |
! |
result |
| true |
! |
false |
| flase |
! |
true |
2.4、总结
- 逻辑与中如有一个操作数为false,则结果必为false
- 逻辑或中如有一个操作数为true,则结果必为true
- 针对逻辑与和逻辑或可以采用短路方式。即从左往右计算,如果确定值则不会再计算下去
3、位运算
3.1、符号汇总
| 符号 |
含义 |
备注 |
| ~ |
取反 |
|
|
|
按位或 |
|
| & |
按位与 |
|
| ^ |
按位异或 |
|
| << |
左移 |
左移一位则相当于乘2 |
| >> |
右移 |
右移一位则相当于除2取商 |
3.2、按位或例子说明
|操作数 |按位或|
|2 |00000010|
|3 |00000011|
|结果 |3|
4、拓展运算
| 符号 |
例子 |
备注 |
| ++ |
a++ |
a自增一 |
| – |
a– |
a自减一 |
4.1、注意事项
符号放在操作数前面还是后面有区别
* ++a 则代表a先自增1,再进行其它操作
* a++ 则代表a先进行其它操作,再自增1
5、三目运算符
5.1、语法格式
x?y:z;
其中x为boolean类型表达式,如果x为ture,则该表达式的结果为y,否则则为z
5.2、应用场景
用于代替ifelse语句,简化代码,提高代码阅读性
6、运算符优先级
表达式里面使用小括号
7、代码案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| include <stdio.h> int main() { int i,j; // 1、赋值 i = 10; j = 20; // 2、算术运算 printf("i+j=%d\n",(i+j)); printf("i-j=%d\n",(i-j)); printf("i*j=%d\n",(i*j)); printf("j/i=%d\n",(j/i)); // 3、拓展运算 printf("i++=%d\n",i++); printf("++i=%d\n",++i); // 4、关系运算 if(j>i){ printf("j>i\n"); } // 5、逻辑运算 if( (j==20) && (j>i) ){ printf("j=20 and j>i\n"); } return 0; }
|