
- •Алфавит языка Идентификаторы Ключевые слова
- •Типы данных
- •Переменные, константы
- •Переменные
- •Типы переменных
- •Объявление переменных
- •Инициализация переменных
- •Константы
- •Неименованные константы
- •Именованные константы
- •Выражения и операции
- •Арифметические операции
- •Операция присваивания
- •Операции сравнения (отношения)
- •Логические операции
- •Побитовые (поразрядные) операции
- •Операции инкремента и декремента
- •Условная операция (?)
- •Операция запятая
- •Операция sizeof
- •Приоритеты операций
- •Приведение (преобразование) типа
Операция присваивания
Операция присваивания (=) относится к бинарным операциям и имеет следующий вид:
левый_операнд = правый_операнд
В качестве левого операнда операции (=) могут использоваться только переменные. Выражения x + 1 = 3 или 3 = x – недопустимы. Правым операндом операции могут быть выражения.
В результате выполнения операции (=) значение правого операнда присваивается левому операнду, например: x = y + 1. Результатом выполнения операции является присвоенное значение, поэтому возможно множественное присваивание:
x = y = z = a + 1
переменные z, y, x примут значение a + 1, если все они одного типа.
Если тип правого операнда не совпадает с типом левого операнда, то выполняется преобразование типа правого операнда к типу левого операнда. Поэтому результат вычисления выражения imax = 4.0 + 3.5, где imax типа int, будет равен 7 вместо ожидаемого значения 7.5, так как компилятор преобразует число 7.5 в целое, отбрасывая дробную часть.
Следует отметить, что часто переменная, являющаяся левым операндом операции присваивания, может использоваться в выражении, находящемся в правой части, например:
a = a / 3 или b = b * 2
Вычисление значений этих выражений приводит к двукратному определению адресов переменных a и b – для нахождения исходных значений и для занесения полученных результатов. Эту избыточность можно ликвидировать, записав
a/=3, b*=2
Операции присваивания вида +=, -=, *=, /=, %= называются составными операциями присваивания.
Операции сравнения (отношения)
В языке С++ применяются следующие операции сравнения:
== – (равно); > – (больше); < – (меньше); >= – (больше или равно); <= – (меньше или равно); != – (не равно).
В качестве операндов операций сравнения могут быть использованы выражения, значения которых перед выполнением операции вычисляются и их результаты сравниваются с помощью операций сравнения. Результатом операций сравнения является значение true (истина), если сравнение выполняется, и false (ложь) – если не выполняется. При этом следует отметить, что в С++ любое ненулевое значение соответствует истине, а нулевое значение – лжи. Например, результат сравнения x == 1 будет true, если значение переменной x равно единице, иначе – false.
Логические операции
Иногда условные выражения требуют одновременной проверки нескольких условий. Например, выражение 0 < x < 5 содержит сразу два условия 0 < x и x < 5. В программировании для записи таких выражений используются логические операции. В языке С++ к логическим операциям относятся:
&& – логическое И;
|| – логическое ИЛИ;
! – логическое НЕ (отрицание).
С использованием логических операций выражение 0 < x < 5 в языке С++ следует записать как (x > 0) && (x < 5).
Операции (&&) и (||) являются бинарными и поэтому при их применении надо указывать два операнда, а операция (!) – унарная операция, т.е. нужен всего один операнд.
Результат выполнения логических операций зависит от значений операндов, с которыми они используются. Так, операция (&&) возвращает значение true, когда истинны (не равны нулю) оба его операнда. Операция (||) возвращает значение false только в том случае, если ложны (равны нулю) оба её операнда. Операция (!) просто инвертирует значение своего операнда с false на true и наоборот. Так, значением выражения (x > 0) && (x < 5) будет true только в том случае, если значение переменной x будет больше 0, но меньше 5.
Таблица свойств логических операций
-
v1
v2
!v2
v1 && v2
v1 || v2
false
false
true
false
false
false
true
false
false
true
true
false
false
true
true
true
true
true