c 語言的符號眾多,由這些符號又組合成了各種各樣的運算子。既然是運算子就一定有其特定的優先順序,下表就是c 語言運算子的優先順序表:
注:同一優先順序的運算子,運算次序由結合方向所決定。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子
上表不容易記住。其實也用不著死記,用得多,看得多自然就記得了。也有人說不用記這些東西,只要記住乘除法的優先順序比加減法高就行了,別的地方一律加上括號。這在你自己寫**的時候,確實可以,但如果是你去閱讀和理解別人的**呢?別人不一定都加上括號了吧?所以,記住這個表,我個人認為還是很有必要的。
上表中,優先順序同為1 的幾種運算子如果同時出現,那怎麼確定表示式的優先順序呢?這是很多初學者迷糊的地方。下表就整理了這些容易出錯的情況:
這些容易出錯的情況,希望讀者好好在編譯器上除錯除錯,這樣印象會深一些。一定要多除錯,光靠看**,水平是很難提上來的。除錯**才是最長水平的。
C語言運算子優先順序表
c運算子優先順序 運算子描述 結合性1 字尾遞增運算子 從左到右 字尾遞減運算子 呼叫運算子 圓括號 下標引用運算子 組合文字 成員選擇 物件 成員選擇 指標 2 字首遞增運算子 從右到左 字首遞減運算子 負號運算子 正號運算子 按位求反運算子 邏輯非運算子 sizeof 長度運算子 取值運算子 取...
C語言運算子優先順序表
優先順序 運算子 名稱或含義 使用形式 結合方向 說明 1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件 物件.成員名 成員選擇 指標 物件指標 成員名 2 負號運算子 常量 右到左 單目運算子 型別 強制型別轉換 資料型別 表示式 自增運算子 變數名 變數名...
運算子優先順序 C 運算子優先順序
c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...