算术运算符:+ - * / %
/ 和 % 除数不能为零 --> 为零的结局:浮点数例外(核心已转储)
关系运算符:> < >= <= == !
(1) 3 < x < 9 -> x值永远为真 -> (3 < x) => 0 或1 => 永远小于9
–> 3 < x && x < 9 => 与数学中的运算规则不同
(2) == 使用时左值(可以被赋值)尽量放在右边,可以提高安全性
num = 10; -> 赋值
10 = num; -> 报错
-> 可以避免使用该符号时漏写=的情况
注:关系运算符的运算符是逻辑值(0|1),此结果是可以参与运算的
自变运算符:++/- -
对变量的值自动加1或减1,浮点型变量也可以使用
前自变:++num 立即有效
后自变:num++ 下一行代码有效
注意:不要在一行代码中多次使用自变运算符,不同的编译器对自变运算符的处理顺序不同
逻辑运算符:&& || !
在运算之前会把运算的对象转换成逻辑值,非零转换为真,零值转换为假
(1)A && B:A和B中只要有一个为假,结果即为假
(2)A || B :A和B中只要有一个为真,结果即为真
(3)!A: 对A的值进行求反,它的运算级别要高于&&和 | |
注意:&&和| |具有短路特性,当左边的值已经可以确定整体表达式的运算结果时,右边的式子将不再进行运算 --> 可以适当的使用&&和||可以写精简的分支结构
例:
if(num < 0)
{
num = 10;
}
相当于num < 0 && (num = 10);
赋值运算符及扩展:=
+=
-=
*=
/=
a += b <=> a = a + b;
三目运算符:[1] ? [2] : [3];
判断1的值,为真则运算2,否则预算3,相当于精简的 if else 结构
三目运算符始终是一个表达式,必须要有运算结果,不能使用流程控制语句
字节宽度运算符:sizeof
注意:它不是函数,是C语言的32个关键字之一
功能:计算数据所占用的字节数,它不进行计算表达式,只是推算表达式的结果是什么,占多少字节数