Оператор | Действие |
---|---|
- | Вычитание, а также унарный минус |
+ | Сложение |
* | Умножение |
/ | Деление |
% | Взятие по модулю (остаток) |
-- | Уменьшение |
++ | Увеличение |
Таблица перечисляет допустимые арифметические операторы С. Операторы +, —, * и / работают в С точно так же, как и в большинстве других языков. Их можно применять практически ко всем встроенным типам данных. Когда применяется / к целому числу или символу, остаток обрубается, например: 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, то есть число, перед которым стоит знак минус, меняет свой знак.