Операции и выражения с
Обновлено: 04.11.2024
Программа оперирует с данными. Числа можно складывать, вычитать, умножать, делить. Из разных величин можно составлять выражения , результат вычисления которых – новая величина. Приведем примеры выражений :
Выражение , после которого стоит точка с запятой – это оператор-выражение . Его смысл состоит в том, что компьютер должен выполнить все действия, записанные в данном выражении , иначе говоря, вычислить выражение .
Выражения – это переменные, функции и константы, называемые операндами, объединенные знаками операций. Операции могут быть унарными – с одним операндом, например, минус; могут быть бинарные – с двумя операндами, например сложение или деление . В Си ++ есть даже одна операция с тремя операндами – условное выражение . Чуть позже мы приведем список всех операций языка Си ++ для встроенных типов данных. Подробно каждая операция будет разбираться при описании соответствующего типа данных. Кроме того, ряд операций будет рассмотрен в разделе, посвященном определению операторов для классов. Пока что мы ограничимся лишь общим описанием способов записи выражений .
В типизированном языке, которым является Си ++, у переменных и констант есть определенный тип. Есть он и у результата выражения . Например, операции сложения ( + ), умножения ( * ), вычитания ( - ) и деления ( / ), примененные к целым числам, выполняются по общепринятым математическим правилам и дают в результате целое значение . Те же операции можно применить к вещественным числам и получить вещественное значение .
Операции сравнения : больше ( > ), меньше ( < ), равно ( == ), не равно ( != ) сравнивают значения чисел и выдают логическое значение: истина ( true ) или ложь ( false ).
Операция присваивания
Присваивание – это тоже операция, она является частью выражения . Значение правого операнда присваивается левому операнду.
Последний пример иллюстрирует требование к левому операнду операции присваивания . Он должен быть способен хранить и изменять свое значение . Переменные, объявленные в программе, обладают подобным свойством. В следующем фрагменте программы
вначале объявляется переменная x с начальным значением 0 . После этого значение x изменяется на 3 , 4 и затем 5 . Опять-таки, обратим внимание на последнюю строчку. При вычислении операции присваивания сначала вычисляется правый операнд , а затем левый. Когда вычисляется выражение x + 1 , значение переменной x равно 4 . Поэтому значение выражения x + 1 равно 5 . После вычисления операции присваивания (или, проще говоря, после присваивания ) значение переменной x становится равным 5 .
У операции присваивания тоже есть результат. Он равен значению левого операнда. Таким образом, операция присваивания может участвовать в более сложном выражении :
В приведенном примере переменным x и z присваивается значение y + 3 .
Очень часто в программе приходится значение переменной увеличивать или уменьшать на единицу. Для того чтобы сделать эти действия наиболее эффективными и удобными для использования, применяются предусмотренные в Си ++ специальные знаки операций: ++ (увеличить на единицу) и -- (уменьшить на единицу). Существует две формы этих операций: префиксная и постфиксная. Рассмотрим их на примерах.
Значение x увеличивается на единицу и становится равным 1 .
Значение x уменьшается на единицу и становится равным 0 .
Значение x опять увеличивается на единицу. Результат операции ++ – новое значение x , т.е. переменной y присваивается значение 1 .
Здесь используется постфиксная запись операции увеличения на единицу. Значение переменной x до выполнения операции равно 1 . Сама операция та же – значение x увеличивается на единицу и становится равным 2 . Однако результат постфиксной операции – это значение аргумента до увеличения. Таким образом, переменной z присваивается значение 1 . Аналогично, результатом постфиксной операции уменьшения на единицу является начальное значение операнда, а префиксной – его конечное значение .
Подобными мотивами оптимизации и сокращения записи руководствовались создатели языка Си (а затем и Си ++), когда вводили новые знаки операций типа "выполнить операцию и присвоить". Довольно часто одна и та же переменная используется в левой и правой части операции присваивания , например:
В Си ++ эти выражения можно записать короче:
Т.е. запись oper= означает, что левый операнд вначале используется как левый операнд операции oper , а затем как правый операнд операции присваивания результата операции oper . Кроме краткости выражения , такая запись облегчает оптимизацию программы компилятором.
Читайте также: