JSRUN 用代码说话

运算符优先级

编辑教程

运算符优先级

运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。

例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。

下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。

类别 运算符 结合性
后缀 () [] -> . ++ - - 从左到右
一元 + - ! ~ ++ - - (type)* & sizeof 从右到左
乘除 * / % 从左到右
加减 + - 从左到右
移位 << >> 从左到右
关系 < <= > >= 从左到右
相等 \== != 从左到右
位与 AND & 从左到右
位异或 XOR ^ 从左到右
位或 OR 从左到右
逻辑与 AND && 从左到右
逻辑或 OR 丨丨 从左到右
条件 ?: 从右到左
赋值 \= += -= *= /= %=>>= <<= &= ^= =丨从右到左
逗号 , 从左到右

实例

请看下面的实例,了解 C 语言中运算符的优先级:

    #include <stdio.h>

    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
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟