运算符
算术运算符:+ - * /(除) %(取余)
关系运算符:><>= <= !=(不等于) ==(等于)
逻辑运算符:! (非) && (与/并且) ||(或)
赋值运算符:=
复合赋值运算符:+= -= /= *= %=
优先级:算数>关系>逻辑>赋值
算数运算符中,除和取余比较特殊。
如果除数和被除数中有一个是小数,除法运算结果是小数。
取余运算的结果正负与被除数相同。
取余运算的被除数和除数都必须为整数。(如果有一个是小数,那结果也应该是小数,说明是可以除尽的。)
编程验证例子
逻辑运算符:
真&&真 = 真
真&&假 = 假
假&&真 = 假
假&&假 = 假
真||真 = 真
真||假 = 真
假||真 = 真
假||假 = 假
C语言中对于真假的处理:非零都为真,零为假。真输出为1,假输出为0。
&&左边的表达式为假时,右边的表达式不执行。(表达式:没有加分号的为表达式,加了分号的是程序语句)
||左边是真的时候,右边的表达式不执行。
代码举例:
k = 0 ,运算结果为假,输出m为0;若改成k = 1(或其他非 0值),运算结果为真,输出m为1。
若左边括号内改成1>2,k输出为20。
若左边改成2>1,k输出结果为20。
自增运算符
i++和++i
后自增 表达式的值是变量自增前的运算结果
前自增 表达式的值是变量自增后的运算结果
为什么需要自增运算符?
代码更精简。
运算速度更快,因为相比于i=i+1和i+=1,i++和++i是直接在寄存器中进行运算,省去了取数和存数的过程。
学习自增的注意点:
1.编程时需要规避前自增和后自增带来的影响。
2.不要把自表达式作为更复杂的表达式的一部分。或者说,将i++或++i单独作为一个语句使用,不要把它当做复合语句的一部分来使用。
三目运算符
A?B : C
等价于
if(A) B;
else C;
逗号运算符
(A, B, C, D)
从左往右运算,运算结果为最后一项的值。
举例:int j = 4;
int x;
x = (j++, ++j, j/3, j-2);
运算完x的值和j的值分别为2和6。