算术运算符包括加、减、乘、除、取模等。它们的优先级从高到低依次为
1. 取模(%)
2. 乘和除(/)
3. 加(+)和减(-)表达式a+bc-d/e%f的计算顺序为
1. 先计算e%f,
2. 再计算bc,得到一个中间结果r2。
3. 然后计算r2+d,得到一个中间结果r3。
4. 计算r3-r1,
2. 关系运算符
关系运算符包括小于、大于、等于、不等于等。它们的优先级比算术运算符低,但比逻辑运算符高。相同优先级的关系运算符是左结合的。表达式ac的计算顺序为
1. 先计算b>c,
2. 然后计算a<r1,
3. 逻辑运算符
逻辑运算符包括与、或、非等。它们的优先级比关系运算符低,但是非常重要。逻辑运算符的结合性是从左到右。表达式a&&b||c的计算顺序为
1. 先计算a&&b,
2. 然后计算r1||c,
4. 赋值运算符
赋值运算符用于给变量赋值,包括等号(=)、加等于(+=)、减等于(-=)等。赋值运算符的优先级比大部分运算符都低,但是它们的结合性是从右到左。表达式a=b=c=d的计算顺序为
1. 先计算d,
2. 然后将r1赋值给c。
3. 然后将c的值赋值给b。
4. 将b的值赋值给a。
综上所述,掌握C语言中运算符的优先级和结合性是非常重要的。只有彻底理解了运算符的计算顺序,才能写出正确的程序。