c語言中運算符有哪幾種?
什么是優先級? 優先級就是當表達式中有多個運算符時,先計算誰,后計算誰。打個比方,在四則運算中乘除的優先級就高于加減。 但是C語言中的運算符除了加減乘除還有很多,我們也沒必要將所有運算符的優先級都記住,這里列出來各個運算符的優先級表,實在需要用到的時候查一下表就行了。而且實際上在編程的時候需要考慮優先級的情況很少,因為如果不知道優先級高低的話,加一個括號就行了,因為括號的優先級是最高的。 比如:k = (j > i) && (8 == i) 根據優先級的高低,完全可以寫成:k = j > i && 8 == i 第一種寫法是比較提倡的,因為一看就知道先計算誰后計算誰,節省了大家的時間還不容易出錯。而且加圓括號也是一種編程規范,因為程序不只是寫給自己看。 此外運算符還有“目”和“結合性”的概念。“目”就是眼睛的意思,一個運算符需要幾個數參與就歸為“幾目”。C語言中大多數運算符都是雙目的,比如 和 運算符;也有單目和三目的,單目運算符如邏輯非 ( !
1 );三目運算符即條件運算符,?:也是C語言中的唯一一個三目運算符。 說完了“目”的概念,再來說一說“結合性”。先來煮個栗子:1 +
2 ×
3 /
4 上式中乘法和除法的優先級相同,但計算的時候是從左往右,所以乘和除的結合性就是從左往右,so easy! C語言中大多數運算符的結合性都是從左往右,只有三個運算符是從右往左的。一個是單目運算符,另一個是三目運算符,還有一個就是雙目運算符中的賦值運算符 。運算符的“結合性”也不需要死記硬背,在不斷使用中就記住了。運算符優先級和結合性一覽表上表中可以總結出以下規律:結合方向只有三個是從右往左,其余都是從左往右。逗號運算符的優先級最低。對于優先級,有一個普遍規律:算數運算符>關系運算符>邏輯運算符>賦值運算符。邏輯運算符中的“邏輯非!”除外。附錄A:一些容易出錯的優先級問題