本文最后更新于179 天前,其中的信息可能已经过时,如有错误请发送邮件至 2641805259@qq.com
一、运算符
算术运算符
- 二元算术运算符:
+:加法-:减法*:乘法/:除法当两个操作数都是整数时,/会截断结果:值1/2是0,而不是0.5%:求余要求两个操作数都是整数
- 一元算术操作符:
+:一元加-:一元减
- 二元算术操作符(%除外),允许使用整数或浮点操作数,并允许混合
- 当
int和float/double操作数混合时,结果的类型为float/double
运算符优先级
算术运算符的优先级:
- 最高:
+-(一元)表示正负 - 其次:
*/%(二元) - 最低:
+-(二元)
运算符结合性
二元运算符都是左结合的:
一元运算符是右结合的:
二、表达式
简单赋值
对于a = b,
- 如果
a和b的类型相同,则把b的值复制给a - 如果
a和b的类型不同,则把b的值强制转换为a的类型,然后给a。
赋值表达式本身也有返回值,
a=b的返回值是赋值后的a值。因此可以实现:
i=j=k=1
左值
表示存储在计算机内存中的对象,而不是常数或计算结果。变量
可以放在表达式
=左边的东西
复合赋值
由于经常有a=a+b这种情况,故有复合赋值
v+=e | v=v+e |
|---|---|
v-=e | v=v-e |
v*=e | v=v*e |
v/=e | v=v/e |
v%=e | v=v%e |
i*=j+k不等于i=i*j+k,其实一般用复合赋值的时候,右边大部分只有一个数
自增和自减操作符
++i表示立即自增i,即i的数值立刻加1
i++表示暂时用i的旧值,用完后再加1
注意
不要写过于复杂的表达式,容易产生未定义行为:
c=(b=a+2)-(a=1)
i = ++j = k + 1