操作符的分类:算数操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员
算数操作符: + - * / %
1.对于/操作符如果两个操作数都为整数,执行整数除法。但只要有浮点数执行的就是浮点数除法。
2.%操作符的两个操作数必须为整数。返回的是整数之后的余数。除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
移位操作符: << 左移操作符 左边抛弃、右边补零
>> 右移操作符 1.逻辑移位 左边用零填充,右边丢弃
2.算术移位 左边用原该值的符号位填充,右边丢弃
注:1.在变量没有被赋值的情况下,移位操作后,变量自身的值不会变化。
2.对于移位运算符,不要移动负数位。例如:int num = 10; num>>-1;这是错误的。
位操作符:& 按位与 | 按位或 ^ 按位异或
注:它们的操作数必须为整数。
赋值表达式:= 把等号右边的值赋给等号左边。
复合赋值符:+= -= *= /= %= >>= <<= &= |= ^=
单目操作符:! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置 先运算后赋值 后置 先赋值后运算
++ 前置 先运算后赋值 后置 先赋值后运算
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符:> >= < <=
!= 用于测试“不相等” == 用于测试“相等”
注:不可将==和=写错,避免导致不必要的错误
逻辑操作符:&& 逻辑与 || 逻辑或
要注意区别逻辑与和按位与,逻辑或和按位或
条件操作符:A ? B : C
判断A条件是否成立,若成立,则执行B,否则执行C
逗号表达式:exp1,exp2,exp3,...expN
从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
下标引用,函数调用和结构成员
1.[] 操作数:一个数组名+一个索引值
2.() 函数调用操作符
接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
3.访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名