在c语⾔中加减的优先级,运算符运算符优先级-C语⾔教程
运算符优先级
运算符的优先级确定表达式中项的组合。这会影响到⼀个表达式如何计算。某些运算符⽐其他运算符有更⾼的优先级,例如,乘除运算符具有⽐加减运算符更⾼的优先级。
例如 x = 7 + 3 * 2,在这⾥,x 被赋值为 13,⽽不是 20,因为运算符 * 具有⽐ + 更⾼的优先级,所以⾸先计算乘法 3*2,然后再加上7。
下表将按运算符优先级从⾼到低列出各个运算符,具有较⾼优先级的运算符出现在表格的上⾯,具有较低优先级的运算符出现在表格的下⾯。在表达式中,较⾼优先级的运算符会优先被计算。
类别
运算符
结合性
后缀
() [] -> . ++ - -
从左到右
⼀元
+ - ! ~ ++ - - (type)* & sizeof
从右到左
乘除
* / %
从左到右
加减
+ -
从左到右
移位
<< >>
从左到右运算符优先级按从高到低排列
关系
< <= > >=
从左到右
相等
\== !=
从左到右
位与 AND
&
从左到右
位异或 XOR
^
从左到右
位或 OR
从左到右
逻辑与 AND
&&
从左到右
逻辑或 OR
⼁⼁
从左到右
条件
:
从右到左
赋值
\= += -= *= /= %=>>= <<= &= ^=
=⼁从右到左
逗号
,
从左到右
实例
请看下⾯的实例,了解 C 语⾔中运算符的优先级:#include
int main()
{
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
printf("(a + b) * c / d 的值是 %d\n", e );
e = ((a + b) * c) / d; // (30 * 15 ) / 5
printf("((a + b) * c) / d 的值是 %d\n" , e );
e = (a + b) * (c / d); // (30) * (15/5)
printf("(a + b) * (c / d) 的值是 %d\n", e );
e = a + (b * c) / d; // 20 + (150/5)
printf("a + (b * c) / d 的值是 %d\n" , e );
return 0;
}
当上⾯的代码被编译和执⾏时,它会产⽣下列结果:(a + b) \* c / d 的值是 90
((a + b) \* c) / d 的值是 90
(a + b) \* (c / d) 的值是 90
a + (
b \* c) / d 的值是 50

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。