C語言運算子的優先順序
c語言優先順序運算子順序是邏輯非最高,算術運算子次之,第三為關係運算符,第四為邏輯與邏輯或,最後是賦值運算子。由於運算子眾多,各種運算子內部的優先順序需要查表確定,日常只需要記住整體運算子優先順序即可。
一、邏輯運算子與關係運算符優先順序
例如:(4>2)||(3>5)&&!(2>0)
解析:
有括號,先算括號,再按照優先順序先進行!運算,(2>0)結果為真,!運算後,結果為假;然後從左到右進行:(4>2)結果為真,(3>5)結果為假,真與假或運算,結果為真;(4>2)||(3>5)的結果與非運算(!(2>0))的結果進行與運算,結果為假。
二、算術運算子與賦值運算子優先順序
例如:
#include
int main(){
int a = 8, b = 2, c = 1;
int d = a + b * c;
int e = a / b * c;
printf( “d=%d, e=%d\n”, d, e);
return 0;
}
執行結果:d=10, e=4
解析:
仍然是先算乘除、後算加減,有括號先算括號內的,同級運算,從左到右。d = a + b * c,先算乘法,再算加法,最後賦值。e = a / b * c,同優先順序,按照從左到右順序,先算除法,再算乘法,最後賦值。