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
總結
以上是生活随笔為你收集整理的c语言 乘除法优先级,运算符运算符优先级 - C语言教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一张纸厚度是多少毫米_大洼20毫米水泥纤
- 下一篇: linux 进程崩溃 wait,Linu