XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


表达式

目录

表达式

隐式类型转化

C语言整形算术运算的时候至少是以缺省整形的精度来进行的,表达式中的字符型、短整型在使用前会被转换成整形

char a, b, c;
a = (-a^b<<1)>>1;

算数转化

某个操作符的操作数属于不同的类型

转换方式:int => unsigned int => long int => unsigned long int => float => double => long double

操作符的属性

  • 操作符的优先级
  • 操作符的结合性:操作符的运算顺序从左到右还是从右到左
  • 操作符是否控制程序的顺序

优先级QQ图片20220726104314

QQ图片20220726104340

QQ图片20220726104658

a + --b这种由于“–”符号不能确定是在之前之后进行,所以没有正确答案

**注意溢出**

**尽量编写结果取决于不确定的运算顺序的表达式**

如果操作对于顺序的要求很高的话,最好添加一个中间值然后分行进行

```C f() + g() + h() ===> temp = f(); temp += g(); temp += h();