Основы программирования на C++, PASCAL
4.4. Операции и выражения
Во всех языках программирования под выражением подразумевается конструкция, составленная из констант, переменных, знаков операций, функций, скобок. Выражение определяет порядок вычисления некоторого значения. Если это числовое значение, то такое выражение называют арифметическим. Вот несколько примеров арифметических выражений, записанных по правилам языка Си:
a+b 12.5-z 2*(X+Y)
х++ х+++b --n*2 n*=1
Три первых выражения имеют традиционную форму для языков программирования высокого уровня, поэтому их смысл очевиден. Следующие четыре выражения специфичны для языка Си.
Опишем набор операций, используемых в Си, а также правила записи и вычисления выражений. Напомним, что операция, применяемая к одному операнду, называется унарной, а операция с двумя операндами — бинарной.
Арифметические операции. К арифметическим операциям относятся:
— вычитание или унарный минус;
+ сложение или унарный плюс;
* умножение;
/ деление;
% деление по модулю (аналог Mod в Паскале);
++ унарная операция увеличения на единицу (инкремент);
-- унарная операция уменьшения на единицу (декремент).
Все операции, кроме деления по модулю, применимы к любым числовым типам данных. Операция % применима только к целым числам.
Рассмотрим особенности выполнения операции деления. Если делимое и делитель — целые числа, то и результат — целое число. В этом случае операция / действует аналогично Div в Паскале. Например, значение выражения 5/3 будет равно 2, а при вычислении 1/5 получится 0.
Если хотя бы один из операндов имеет вещественный тип, то и результат будет вещественным. Например, операции 5. / 3, 5. / 3., 5/3. дадут вещественный результат 1.6666.
Операции инкремента и декремента могут применяться только к переменным и не могут — к константам и выражениям. Операция ++ увеличивает значение переменной на единицу, операция — уменьшает значение переменной на единицу. Оба знака операции могут записываться как перед операндом (префиксная форма), так и после операнда (постфиксная форма), например: ++X или X++, --а или а--. Три следующих оператора дают один и тот же результат:
х=х+1; ++х; х++
Различие проявляется при использовании префиксной и постфиксной форм в выражениях. Проиллюстрируем это на примерах. Первый пример:
а=3; b=2;
с=а++*b++;