Чтение онлайн

на главную - закладки

Жанры

Шрифт:

7.7 Операции равенства

выражение_равенства: выражение == выражение выражение != выражение

Операции == и != в точности аналогичны операциям сравнния за исключением их низкого приоритета. (Так, a«b == c«d есть 1 всегда, когда a«b и c«d имеют одинаковое истинностное значение.)

Указатель может сравниваться с 0.

7.8 Операция побитовое И

И-выражение: выражение amp; выражение

Операция amp; ассоциативна, и выражения, содержащие amp;,

мгут реорганизовываться. Выполняются обычные арифметические преобразования; результатом является побитовая функция И опрандов. Операция применяется только к целым операндам.

7.9 Операция побитовое исключающее ИЛИ

исключающее_ИЛИ_выражение: выражение ^ выражение

Операция ^ ассоциативна, и выражения, содержащие ^, мгут реорганизовываться. Выполняются обычные арифметические преобразования; результатом является побитовая функция исключающее ИЛИ операндов. Операция применяется только к целым операндам.

7.10 Операция побитовое включающее ИЛИ

включающее_ИЛИ_выражение: выражение ! выражение

Операция ! ассоциативна, и выражения, содержащие !, мгут реорганизовываться. Выполняются обычные арифметические преобразования; результатом является побитовая функция вклчающее ИЛИ операндов. Операция применяется только к целым операндам.

7.11 Операция логическое И

логическое_И_выражение: выражение amp; amp; выражение

Операция amp; amp; группирует слева направо. Она возвращает 1, если оба операнда ненулевые, и 0 в противном случае. В протвоположность операции amp; операция amp; amp; гарантирует вычисление слева направо; более того, второй операнд не вычисляется, ели первый операнд есть 0.

Операнды не обязаны иметь один и тот же тип, но каждый из них должен иметь один из основных типов или быть указатлем. Результат всегда имеет тип int.

7.12 Операция логическое ИЛИ

логическое_ИЛИ_выражение: выражение !! выражение

Операция !! группирует слева направо. Она возвращает 1, если хотя бы один из ее операндов ненуелвой, и 0 в противном случае. В противоположность операции ! операция !! гарантирет вычисление слева направо; более того, второй операнд не вычисляется, если первый операнд не есть 0.

Операнды не обязаны иметь один и тот же тип, но каждый из них должен иметь один из основных типов или быть указатлем. Результат всегда имеет тип int.

7.13 Условная операция

условное_выражение: выражение ? выражение : выражение

Условная операция группирует слева направо. Вычисляется первое выражение, и если оно не 0, то результатом является значение второго выражения, в противном случае значение третьего выражения. Если это возможно, то выполняются обычные арифметические преобразования для приведения второго и третего выражения к общему типу. Если это возможно, то выполняюся

преобразования указателей для приведения второго и третего выражения к общему типу. Вычисляется только одно из второго и третьего выражений.

7.14 Операции присваивания

Есть много операций присваивания, все группируют слева направо. Все в качестве левого операнда требуют lvalue, и тип выражения присваивания тот же, что и у его левого операнда. Это lvalue не может ссылаться на константу (имя массива, имя функции или const). Значением является значение, хранящееся в левом операнде просле выполнения присваивания.

выражение_присваивания:

выражение операция_присваивания выражение

операция_присваивания: одна из

= += -= *= /= %= »»= ««= amp;= ~= !=

В простом присваивании с = значение выражения замещает собой значение объекта, на который ссылается операнд в левой части. Если оба операнда имеют арифметический тип, то при подготовке к присваиванию правый операнд преобразуется к типу левого. Если аргумент в левой части имеет указательный тип, аргумент в правой части должен быть того же типа или типа, который может быть преобразован к нему, см. #6.7. Оба операда могут быть объектами одного класса. Могут присваиваться объекты некоторых производных классов, см. #8.5.3.

Присваивание объекту типа «указатель на ...» выполнит присваивание объекту, денотируемому ссылкой.

Выполнение выражения вида E1 op= E2 можно представить себе как эквивалентное E1 = E1 op (E2); но E1 вычисляется только один раз. В += и -= левый операнд может быть указатлем, и в этом случае (целочисленный) правый операнд преобрзуется так, как объяснялось в #7.4; все правые операнды и не являющиеся указателями левые должны иметь арифметический тип.

7.15 Операция запятая

запятая_выражение: выражение , выражение

Пара выражений, разделенных запятой, вычисляется слева направо, значение левого выражения теряется. Тип и значение результата являются типом и значением правого операнда. Эта операция группирует слева направо. В контексте, где запятая имеет специальное значение, как например в списке фактических параметров функции (#7.1) и в списке инициализаторов (#8.6), операция запятая, как она описана в этом разделе, может пояляться только в скобках; например,

f (a,(t=3,t+2),c)

имеет три параметра, вторым из которых является значение 5.

7.16 Перегруженные операции

Большинство операций может быть перегружено, то есть, описано так, чтобы они получали в качестве операндов объекты классов (см. #8.5.11). Изменить приоритет операций невозмоно. Невозможно изменить смысл операций при применении их к неклассовым объектам. Предопределенный смысл операций = и amp; (унарной) при применении их к объектам классов может быть именен.

Поделиться:
Популярные книги

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Потомок бога 3

Решетов Евгений Валерьевич
3. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Потомок бога 3

Небо в огне. Штурмовик из будущего

Политов Дмитрий Валерьевич
Военно-историческая фантастика
Фантастика:
боевая фантастика
7.42
рейтинг книги
Небо в огне. Штурмовик из будущего

Внебрачный сын Миллиардера

Громова Арина
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Внебрачный сын Миллиардера

Семь Нагибов на версту

Машуков Тимур
1. Семь, загибов на версту
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Семь Нагибов на версту

Последний Паладин. Том 3

Саваровский Роман
3. Путь Паладина
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 3

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Его темная целительница

Крааш Кира
2. Любовь среди туманов
Фантастика:
фэнтези
5.75
рейтинг книги
Его темная целительница

Наследница долины Рейн

Арниева Юлия
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Наследница долины Рейн

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник

Честное пионерское! 2

Федин Андрей Анатольевич
2. Честное пионерское!
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Честное пионерское! 2

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII