C语言操作符:
1、算术操作符:+ - * % /
注:%(只可以作用于整数,返回的是整数余数)其他可以作用于整数与浮点数
2、移位操作符:
例如:a<<1: a向左移动一位
a>>2:a向右移动两位
其中右移包括:(1)算术右移:右边丢弃,左边补符号位
(2)逻辑右移:右边丢弃,左边补0
注:(1)移位操作符不移负数位
(2)移位时自身不改变,对于移位采用二进制移位
3、位操作符:&:按位与
|:按位或
^:按位异或(相同为0,异同为1)
注:操作数为整数
4、赋值操作符:
例如: a = b = b * 3 自左向右
5、复合操作符: += -= *= /= %= >>= <<= &= |= =
例如:a = a + 10 可以等同于 a += 10
6、单目操作符: ! 逻辑反操作; - 负值; + 正值; & 取地址;
sizeof 操作数的类型长度; -- 前置后置--; ++ 前置后置++;
* 间接访问操作符; (类型) 强制类型转换;~ 按位取反;
(1)sizeof(数组名):计算数组的总大小,不是函数
(2)++:1. 后置++(先使用后增加)
2. 前置++(先增加后使用)
-- :1. 后置-- (先使用后减少)
2. 前置-- (先减少后使用)
(3) * : 例如: int a = 10;
int * pa = & a;
* pa = 20;
(4) (类型): 例如 : int a = 10 ;
a = ( int ) 3.14 ;
7、关系操作符: > >= < <= != ==
注: 字符串不可以用关系操作符比较 要用 strcmp();
“== 不同于 “=”
8、逻辑操作符: && 逻辑与
|| 逻辑或
区别: a && b : 判断a、b的真假;
a & b:用二进制判断;
9、条件操作符:exp 1 ? exp 2 : exp 3
注解:判断 exp 1真假;若为真,输出exp 2;若为假,输出exp 3;
10、逗号表达式:exp1,exp2,..........expN
注:从左往右依次执行,整个表达式结果是最后一个表达式的结果
11、下标引用、函数调用、结构成员
(1)下标引用:[] 操作数:例如 arr[4]: 2个操作数
(2)函数调用:至少有一个操作数
(3)结构成员: .结构体. 成员名
-> 结构体指针 -> 成员名
操作符属性:1、操作符的优先级
2、操作符结合性
3、是否控制求值顺序