操作符分类
1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符(操作数只有一个)
6.关系操作符
7.逻辑操作符
8.条件操作符
9.逗号表达式
10.下标引用,函数调用和结构成员
一. 算术操作符
- + * / %(**两个操作数必须为整数)**
注意:
对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数就执行浮点数除法
二.移位操作符
》右移操作符
《 左移操作符
1.左移操作符
规则:左边抛弃相应位数,右边补0
2.右移操作符
规则:
①逻辑移位:左边用0补充,右边丢弃
②算术移位:左边用原符号位补充,右边丢弃
注意:对于移位运算,不要移动负数位(标准未定义)
三.位操作符
&(按位与) | (按位或) ^(按位异或)
(注:所有操作数必须为整数)
例如交换两个整数的值,要求不建立临时变量
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("%d %d\n", a, b);
system("pause");
return 0;
}
四.赋值操作符
赋值操作符可以连续使用
复合赋值符
-= += *= /= %= 》= 《= &= |= !=
五.单目操作符
种类:
! (逻辑反操作)
+ (正)
- (负)
& (取地址)
sizeof (求字节大小的操作符)
~ (对一个数的二进制进行按位取反)
++ (前置,后置++)
– ( 前置,后置–)
* (间接访问操作符)
( 类型) (强制类型转换)
注意:
前置++和–:先++/–,再使用
后置++和–:先使用,再++/–
六.关系操作符
种类:
>
>=
<
<=
!= 用于测试不相等
== 用于测试相等
注意: 要区分==和=的区别,不要用错了
七.逻辑操作符
&& 逻辑与
|| 逻辑或
要注意区分逻辑与和按位与,逻辑或和按位或
重点:
逻辑与运算:若左边表达式为假,则右边表达式就不进行运算,返回结果为假
逻辑或运算:左边表达式为真,右边表达式就不进行运算,返回结果为真
八.条件操作符
exp1? exp2:exp3
若exp1为真,返回exp2,否则返回exp3
九.逗号表达式
exp1,exp2,exp3…expN
表达式之间用逗号隔开
规则:从左到右依次进行计算,每个表达式都会执行,但整个表达式的结果是最后一个表达式的结果
十.下标引用,函数调用和结构成员
1.[]下标引用操作符
操作数有两个:一个数组名+一个索引值
2.()函数调用操作符
接受一个或者多个操作数 一个操作数是函数名,剩余的操作数是传递的参数
3.访问一个结构的成员
.结构体.成员名
->结构体指针->成员名(指向符)
注意:结构体和数组都属于聚合类型,整体初始化只有一次机会
操作符部分就总结到这里啦