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

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

Жанры

Шрифт:

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; (унарной) при применении их к объектам классов может быть именен.

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

Я снова не князь! Книга XVII

Дрейк Сириус
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Я уже царь. Книга XXIX

Дрейк Сириус
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я уже царь. Книга XXIX

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер

Древесный маг Орловского княжества 4

Павлов Игорь Васильевич
4. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 4

Развод в 45. От любви до ненависти

Гофман Крис
6. Развод
Любовные романы:
остросюжетные любовные романы
5.40
рейтинг книги
Развод в 45. От любви до ненависти

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

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

Третье правило диверсанта

Бычков Михаил Владимирович
Фантастика:
постапокалипсис
5.67
рейтинг книги
Третье правило диверсанта

Эпоха Опустошителя. Том V

Павлов Вел
5. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том V

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Последняя

Гусейнова Ольга Вадимовна
1. Последняя
Фантастика:
фэнтези
5.00
рейтинг книги
Последняя

Эволюционер из трущоб. Том 7

Панарин Антон
7. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 7

Я все еще граф. Книга IX

Дрейк Сириус
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX