1.C语言的运算符可以分为十类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符、特殊运算符。
2.运算符的优先级简单的就是:!>算术运算符>关系运算符>&&>||>赋值运算符。
3.条件运算符为?和:,它是一个三目运算符,一般表达式为表达式1?表达式2:表达式3,其求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值,条件运算符的优先级低于关系运算符和算术运算符,高于赋值符。
4.++和--做一些连续自加或自减时较为复杂,如:
int i = 3;
(++i)+(++i)+(++i);
有的编译器计算出来是18,有的计算器计算出来是16,但不会是15,但是很多同学包括我算出来的是15.
5.位运算的应用,位与运算用于清0特定位,取某数中指定位;位或运算用于将某源操作数某些位置1,其他位不变;位异或运算用于使特定位的值取反,不引入第三变量,交换两个变量的值。
6.右移时,对于有符号数,符号位将随同移动,当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。
7.逻辑运算符||两边的条件只要一个为真,其结果就为真;只要有一个结果为假,其结果就为假。
8.逗号运算符在所有运算符中优先级最低。
9.算术运算符高于移位运算符
10..的优先级高于*,->操作符用于消除这个问题。