Appearance
表达式
隐式类型转化
C语言整形算术运算的时候至少是以缺省整形的精度来进行的,表达式中的字符型、短整型在使用前会被转换成整形
C
char a, b, c;
a = (-a^b<<1)>>1;
算数转化
某个操作符的操作数属于不同的类型
转换方式:int => unsigned int => long int => unsigned long int => float => double => long double
操作符的属性
- 操作符的优先级
- 操作符的结合性:操作符的运算顺序从左到右还是从右到左
- 操作符是否控制程序的顺序
优先级:
注:a + --b
这种由于“--”符号不能确定是在之前之后进行,所以没有正确答案
注意溢出
尽量编写结果取决于不确定的运算顺序的表达式
如果操作对于顺序的要求很高的话,最好添加一个中间值然后分行进行
Cf() + g() + h() ===> temp = f(); temp += g(); temp += h();