一、算术操作符(+ - * / %)
1、/:1/2=0、1.0/2、1/2.0、1.0/2.0=0.5
2、%:两端必须是整数
二、移位操作符(<< >>)——【67-1:30】
1、它们的操作数+只能是整数
2、它移动的是二进制操作符(左右移动整数的补码,且整数在内存中储存的是补码)
三、位操作符(& | ^)——【68-0:10】
1、对左右操作数的补码的每一位比较
2、^ -相同为0,相异为1
四、赋值操作符
1、int a = 1 —— 初始化
b = 1 —— 赋值
2、复合赋值符:<<=、>>=、+=、-=、*=、/=、%=
五、单目操作符
1、
2、前后置++、--
b=++a; (a=a+1; b=a;)
b=a++; (b=a; a=a+1;)
3、(类型名)——强制类型转换:int a = (int) 3.14;——int a = 3;
4、sizeof:
sizeof a = sizeof (a) —— sizeof 括号可以去掉,所以不是函数
但 sizeof int 是错误的写法
六、关系操作符
1、注意区分 == 和 = 的区别
== 是判断左右是否相等,是返回1,否返回0
= 是把右边的值赋给左边
2、"字符串1" == "字符串2" 这样写是在比较它们首元素的地址
可以用 string.h 中的 strcmp 函数比较它们的内容
七、逻辑操作符(与 || 或 &&)
1、若左边以判断为真(假),则||(&)停止判断
上述结果都为 2、2、3、4
2、1 < x <9 判断结果一定是真
相当于(1 < x )的真假性与 9 比较
真确表达应该是:1 < x && x < 9
八、三目操作符(条件操作符)
1、表达式1 ? 表达式2 :表达式3 ;
若 1 为真,结果为2:1 为假,结果为3
九、逗号表达式
结果为 13
十、下标引用、函数调用、结构成员相关操作符
十一、表达式求值——72
1、最好让表达式的执行顺序唯一