優先順序【高到低】
第一級:圓括號【()】、下標運
算符【[]】、分量運算子的指向結構體成員運算子【->】、結構體成員運算子【.】。
第二級:邏輯非運算子【!】、按位取反運算子【~】、自增自減運算子【++ --】、負號運算子【-】、型別轉換運算子【(型別)】、指標運算子和取地址運算子【*和&】、長度運算子【sizeof】。
第三級:乘法運算子【*】、除法運算子【/】、取餘運算子【%】。
第四級:加法運算子【+】、減法運算子【-】。
第五級:左移動運算子【<<】、右移動運算子【>>】。
第六級:關係運算符【< > <= >= 】。
第七級:等於運算子【==】、不等於運算子【!=】。
第八級:按位與運算子【&】。
第九級:按位異或運算子【^】。
第十級:按位或運算子【|】。
第十一級:邏輯與運算子【&&】。
第十二級:邏輯或運算子【||】。
第十三級:條件運算子【?:】。
第十四級:賦值運算子【= += -= *= /= %= >>= <<.= &= |= ^=】。
第十五級:逗號運算子【,】。
擴充套件資料
優先順序與求值順序無關。如(a+b)&&(b*c),雖然*優先順序最高,但這個表示式求值順序是從左到右。優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號運算子具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。
基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。1<<3+2&7等價於 (1<<(3+2))&7。邏輯運算最後結合。
優先順序【高到低】
第一級:圓括號【()】、下標運
算符【[]】、分量運算子的指向結構體成員運算子【->】、結構體成員運算子【.】。
第二級:邏輯非運算子【!】、按位取反運算子【~】、自增自減運算子【++ --】、負號運算子【-】、型別轉換運算子【(型別)】、指標運算子和取地址運算子【*和&】、長度運算子【sizeof】。
第三級:乘法運算子【*】、除法運算子【/】、取餘運算子【%】。
第四級:加法運算子【+】、減法運算子【-】。
第五級:左移動運算子【<<】、右移動運算子【>>】。
第六級:關係運算符【< > <= >= 】。
第七級:等於運算子【==】、不等於運算子【!=】。
第八級:按位與運算子【&】。
第九級:按位異或運算子【^】。
第十級:按位或運算子【|】。
第十一級:邏輯與運算子【&&】。
第十二級:邏輯或運算子【||】。
第十三級:條件運算子【?:】。
第十四級:賦值運算子【= += -= *= /= %= >>= <<.= &= |= ^=】。
第十五級:逗號運算子【,】。
擴充套件資料
優先順序與求值順序無關。如(a+b)&&(b*c),雖然*優先順序最高,但這個表示式求值順序是從左到右。優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號運算子具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。
基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。1<<3+2&7等價於 (1<<(3+2))&7。邏輯運算最後結合。