大多數的 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 ),這些規則和代數中所定義的相同:

⑴ 先執行乘法、除法以及模數運算。 如果一個運算是包含好幾個乘法、除法以及模數運算,那麼便從左至右逐一運算。 乘、除和模數的優先順序等級是相同的。

⑵ 加減的運算則是最後進行。 如果同一個運算式中含有數個加和減的運算,便由左至右逐一地運算。 加和減的優先順序等級是相同的,但是優先次序低於乘法、除法以及模數運算數。

 

運算子 運算 運算優先順序
* 乘法 最先運算。 如有多層括弧,先運算最內層括弧里的運算。
/ 除法  
% 模數除法  
+ 加法 第二優先。 如有數個,則由左至右的進行運算。
减法