C语言的基本操作符都有算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员。
算术操作符: + - * / %
除了%操作符之外,其他的几个操作符都可以作用于整数和浮点数。
移位操作符:<< >>
左移操作符使用的时候左边抛弃,右边补0;
右移操作符使用的时候分为逻辑移位和算术移位,逻辑移位左边补0,右边丢弃;算术移位左边补符号位,右边抛弃。
警告:对于移位运算符,不要移动符号位,这个是标准未定义的。
位操作符:&(按位与) |(按位或) ^(按位异或)
注意:他们的操作数必须是整数。
赋值操作符:=
复合赋值操作符:+= -= *= /= %= >>= <<= &= |=
例如:int a = 10;
a = a + 2;(a += 2;)
单目操作符:!(逻辑取反) - + &(取地址) sizeof(操作数的类型长度,单位:字节) ~(对一个数的二进制进行按位取反) -- ++ (分为前置++ ()--),或者后置 ++ ()--);前置先++(--)再使用,后置先使用再++(--))
*(间接访问操作符)
关系操作符:> >= < <= != ==
注意:一定要区分“=”和“==”,一个赋值一个判断是否相等!
逻辑操作符: &&(逻辑与) ||(逻辑或)
区分逻辑与与逻辑或,按位与与按位或。
条件操作符: exp1 ? exp2 : exp3
例如:if (a > 5)
b = 3;
else
b = -3;
这个if 语句就等于 a > 5? 3 : -3;
逗号操作符: exp1, exp2, exp3, ...expN
逗号表达式,就是用逗号隔开的多个表达式,从左到右依次执行。整个表达式的结果是最后一个表达式的结果。
下标引用、函数调用和结构成员:
[] 操作数:一个数组名 + 一个索引值
() 函数调用操作符
. 结构体.成员名
-> 结构体指针->成员名