| Оператор | Действие |
|---|---|
| - | Вычитание, а также унарный минус |
| + | Сложение |
| * | Умножение |
| / | Деление |
| % | Взятие по модулю (остаток) |
| -- | Уменьшение |
| ++ | Увеличение |
Таблица перечисляет допустимые арифметические операторы С. Операторы +, —, * и / работают в С точно так же, как и в большинстве других языков. Их можно применять практически ко всем встроенным типам данных. Когда применяется / к целому числу или символу, остаток обрубается, например: 10/3 равно 3.
Оператор взятия по модулю % работает в С так же, как в некоторых других языках. Надо помнить, что оператор взятия по модулю выдает остаток от целочисленного деления. % не может использоваться с типами float и double. Следующий фрагмент демонстрирует его использование:
int х, у;
х = 10;
у = 3;
printf("%d", x/y); /* выводит 3 */
printf ("%d", х%у); /* выводит 1 - остаток целочисленного деления */
x = 1;
y = 2;
printf("%d %d", х/у, х%у)/ /* выводит 0 1*/
Причина того, что последняя строка печатает 0 и 1, заключается в том, что в результате целочисленного деления 1/2 получается 0 с остатком 1. 1 % 2 выдает остаток 1.
Унарный минус фактически умножает одиночный операнд на -1, то есть число, перед которым стоит знак минус, меняет свой знак.
