大多數的 C 程式都會執行算術運算。 下表列出了 C 所有的算術運算子 ( arithmetic operators )。 請注意在這裡用到了數個和代數所用不同的特殊符號。 * 代表乘,而 % 代表模數運算子。 在代數裡面,如果我們想將 a 乘以 b,只要寫成 ab 即可。 不過我們若在 C 裡寫出 ab,代表的是一個有兩個字元的識別字。 因此,C 需要用 * 運算子來明確地表示相乘,如 a*b。
C 的運算 | 算術運算子 | 代數運算式 | C 的運算式 |
加法 | + | f + 7 | f + 7 |
减法 | – | p – c | p – c |
乘法 | * | bm | b * m |
除法 | / | x / y 或 x ÷ y | x / y |
模數除法 | % | r mod s | r % s |
算術運算子都是二元運算子。 例如,運算式 3+7 包含了二元運算子 + 和運算元 3 及 7。
整數除法 ( Integer division ) 得到的結果會是個整數。 如 7/4 會等於 1,而 17/5 會等於 3。 C 還提供了模數運算子 ,它的運算結果是整數相除後的餘數。 模數運算子是整個運算子,它的運算元必須是整數。 運算式 x%y 的結果是 x 除以 y 之後的餘數。 因此,7%4 等於 3,而 17% 5 等於 2 。
C 的運算順序是依據下列的運算子優先順序規則 ( rules of operator precedence ),這些規則和代數中所定義的相同:
⑴ 先執行乘法、除法以及模數運算。 如果一個運算是包含好幾個乘法、除法以及模數運算,那麼便從左至右逐一運算。 乘、除和模數的優先順序等級是相同的。
⑵ 加減的運算則是最後進行。 如果同一個運算式中含有數個加和減的運算,便由左至右逐一地運算。 加和減的優先順序等級是相同的,但是優先次序低於乘法、除法以及模數運算數。
運算子 | 運算 | 運算優先順序 |
* | 乘法 | 最先運算。 如有多層括弧,先運算最內層括弧里的運算。 |
/ | 除法 | |
% | 模數除法 | |
+ | 加法 | 第二優先。 如有數個,則由左至右的進行運算。 |
– | 减法 |