算术运算符:+-*/%,浮点数可以参与除法运算,但不能参与取余运算
a%b:表示取模或取余
关系运算符:<,>,>=,<=,==,!=
逻辑运算符:!,&&,||
&&,||逻辑运算符是从左到右,依次运算,下图中b++和a++都未进行计算
位运算符:~(位逻辑反),&(位逻辑与),|(位逻辑或),^(位逻辑异或),>>(右移位),<<(左移位)
printf("%#x\n",y)其中x表示16进制,#表示加上0x前缀
^(位逻辑异或):相同为假,相异为真
<<(左移位):左移一位×2,>>(右移位):右移一位/2
左移、右移应用
1、快速将x=0x14的第y位置为1
x | (1<<(y - 1))
2、快速将x=0x14的第y位置为0
x & (~(1<<(y - 1)))
3、利用位运算把一个十进制数转换成十六进制数
特殊运算符
三目运算符:<表达式1> ?<表达式2> : <表达式3>
表达式1成立就进行运算表达式2否则运算表达式3
逗号运算符:从左到右依次执行,最后一个运算符赋值给等号左边
sizeof运算符
运算符的优先级
下图中,1、++优先级大于&&,&&优先级大于||;
2、!优先级大于&&,
3、==优先级大于+=,