| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
выражение-отношения
выражение-типа-равенства == выражение-отношения
выражение-типа-равенства != выражение-отношения
Операция проверки равенства ==
В выражении E1 == E2 операнды должны удовлетворять
- 84 -
одному из следующего набора условий:
1. Оба значения Е1 и Е2 - арифметического типа.
2. Оба значения Е1 и Е2 являются указателями квалифици-
рованных или неквалифицированных версий совместимых типов.
3. Одно из значений, Е1 или Е2, является указателем
объекта неполного типа, а второй - указателем на квалифици-
рованную или неквалифицированную версию void.
4. Одно из значений, Е1 или Е2, является указателем, а
второе - константой типа пустого указателя.
Если Е1 и Е2 имеют тип, являющийся допустимым типом для
операций отношения, то применимы правила, подробно описанные
для операций отношения типа Е1 < E2, E1 <= T2, и т.д.
В случае 1, например, выполняются обычные арифметичес-
кие преобразования, а результат операции Е1 == Е2 имеет тип
int. Если значение Е1 равно значению Е2, то результат равен
1 (истина); в противном случае результат равен нулю (ложь).
В случае 2 Е1 == Е2 дает 1 (истина), если Е1 и Е2 ука-
зывают на один и тот же объект, либо оба указывают на "сле-
дующий после последнеего" элемент одного и того же объекта
типа массив, либо оба являются пустыми указателями.
Если Е1 и Е2 являются указателями на объекты типа функ-
ции, то Е1 == Е2 дает значение 1 (истина), если оба они пус-
тые, либо оба указывают на одну и ту же функцию. И наоборот,
если Е1 == Е2 дает 1 (истина), то и Е1, и Е2 указывают на
одну и ту же функцию или являются пустыми.
В случае 4 указатель объекта или неполного типа преоб-
разуется к типу другого операнда (указателю квалифицирован-
ной или неквалифицированной версии void).
Оператор проверки неравенства !=
Выражение Е1 != Е2 подчиняется тем же правилам, что и
ля Е1 == Е2, за исключением того, что результат равен 1 (ис-
тина), если операнды неравны, и 0 (ложь) в случае равенства
операндов.
Операция поразрядного И &
Синтаксис данной операции следующий:
выражение-И:
выражение-типа-равенства
выражение-И & выражение-равенства
В выражении E1& E2 оба операнда должны быть интеграль-
ного типа. Выполняются обычные арифметические преобразования
Е1 и Е2, а результатом является поразрядное И для Е1 и Е2.
Каждый бит результата определяется в соответствии с таблицей
1.21.
- 85 -
Таблица истинности для поразрядных операций Таблица 1.21
-----------------------------------------------------------
Битовое значение Битовое значение Е1 & E2 E1 ^ E2 E1 \! E2
в Е1 в Е2
-----------------------------------------------------------
0 0 0 0 0
1 0 0 1 1
0 1 0 1 1
1 1 1 0 1
-----------------------------------------------------------
Операция поразрядного исключающего ИЛИ^
Синтаксис этой операции следующий:
выражение-исключающее-ИЛИ:
выражение-И
выражение-исключающее-ИЛИ ^ выражение-И
В выражении E1 ^ E2 оба операндадолжныбыть интегрально-
го типа,причем выполняются обычные арифметические преобразо-
вания Е1 и Е2, а результатом операции является поразрядное
исключающееИЛИ для Е1 и Е2. Каждый бит результата определя-
ется таблицей 1.21.
Операция поразрядного включающего ИЛИ \!
Синтаксис этой операции следующий:
выражение-включающее-ИЛИ:
выражение-исключающее-ИЛИ
выражение-включающее-ИЛИ \! выражение-исключающее-ИЛИ
В выражении E1\! E2 оба операнда должны быть интеграль-
ного типа, причем выполняются обычные арифметические преоб-
разования Е1 и Е2, а результатом операции является
поразрядное включающее ИЛИ для Е1 и Е2. Каждый бит результа-
та определяется таблицей 1.21.
Операция логического И&&
Синтаксис этой операции следующий:
выражение-логическое-И:
выражение-включающее-ИЛИ
выражение-логическое-И && выражение-включающее-ИЛИ
В выражении E1 && E2 оба операнда должны быть скалярно-
готипа. Результат операции имеет тип int и равен 1 (истина),
если оба значения, Е1 и Е2 ненулевые; в противном случае ре-
зультат равен 0 (ложь).
В отличие от поразрядной операции &, операция && гаран-
тирует расчет выражения в последовательности слева-направо:
первым вычисляется Е1; если Е1 равен 0, то Е1 && E2 дает 0
(ложь), и Е2 не вычисляется вообще.
Операция логического ИЛИ \!\!
Синтаксис этой операции следующий:
выражение-логическое-ИЛИ:
выражение-логическое-И
выражение-логическое-ИЛИ \!\! выражение-логическое-И
- 86 -
В выражении E1 \!\! E2 оба операнда должны быть скаляр-
ноготипа. Результат операции имеет тип int и равен 1 (исти-
на), если одно из значений, Е1 или Е2 ненулевое; в противном
случае результат равен 0 (ложь).
В отличие от поразрядной операции \!, операция \!\! га-
рантирует расчет выражения в последовательности слева-напра-
во: первым вычисляется Е1; если Е1 не равен 0, то Е1 \!\! E2
дает 1 (истина), и Е2 не вычисляется вообще.
Условная операция ?:
Синтаксис этой операции следующий:
условное-выражение
выражение-логическое-ИЛИ
выражение-логическое-ИЛИ ? выражение : условное-выражение
В выражении Е1? Е2 : Е3 операнд Е1 должен быть скаляр-
ного типа. Операнды Е2 и Е3 должны удовлетворять одному из
приводимых ниже правил:
1. Оба операнда - арифметического типа.
2. Оба операнда имеют совместимые типы структуры или
объединения.
3. Оба операнда - типа void.
4. Оба операнда имеют тип указателя на квалифицирован-
ные или неквалифицированные версии совместимых типов.
5. Один операнд имеет тип указателя, а второй является
константой типа пустого указателя.
6. Один операнд имеет тип указателя на объект или не-
полный тип, а второй - тип указателя на квалифицированную
или неквалифицированную версию типа void.
Прежде всего вычисляется Е1; если он имеет ненулевое
значение (истина), то Е2 вычисляется, а Е3 игнорируется. Ес-
ли Е1 дает ноль (ложь), то Е3 вычисляется, а Е2 игнорирует-
ся.Результат операции Е1 ? Е2 : Е3 зависит от того, который
из операндов, Е2 или Е3, будет вычисляться.
В случае 1 оба операнда, Е2 и Е3, подвергаются обычным
арифметическим преобразованиям, а типом результата будетоб-
щий тип, получаемый в результате преобразований.
В случае 2 типом результата будет являться общий тип
структуры или объединения Е2 или Е3.
В случае 3 результат будет иметь тип void.
|
adfun.ru
|
|
|
|