Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по С++.doc
Скачиваний:
49
Добавлен:
02.05.2014
Размер:
995.33 Кб
Скачать

R.5.11 Поразрядная операция и

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

R.5.12 Поразрядная (исключающая) операция или

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

R.5.13 Поразрядная (включающая) операция или

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

R.5.14 Логическая операция и

логическое-выражение-И: выражение-ИЛИ логическое-выражение-И && выражение-ИЛИ Операции && выполняются слева направо. Такая операция дает результат 1, если оба операнда ее отличны от нуля, иначе результат - 0. В отличие от & при операции && гарантируется вычисление слева направо, более того, второй операнд не вычисляется, если первый операнд равен 0. Операнды не обязательно имеют одинаковый тип, но каждый должен быть арифметического типа или типа указателя. Тип результата int. Все побочные эффекты вычисления первого выражения могут возникать до вычисления второго выражения.

R.5.15 Логическая операция или

логическое-выражение-ИЛИ: логическое-выражение-И логическое-выражение-ИЛИ || логическое-выражение-И Операции || выполняются слева направо. Результат операции 1, если один из ее операндов отличен от нуля, иначе результат - 0. В отличие от | при операции || гарантируется вычисление слева направо, более того, второй операнд не вычисляется, если значение первого операнда отлично от нуля. Операнды не обязательно имеют одинаковый тип, но каждый должен быть арифметического типа или типа указателя. Тип результата int. Все побочные эффекты вычисления первого выражения могут возникать до вычисления второго выражения.

R.5.16 Операция условия

выражение-условия: логическое-выражение-ИЛИ логическое-выражение-ИЛИ ? выражение : выражение-условия Условные выражения выполняются слева направо. Первое выражение должно быть арифметического типа или типа указателя. Оно вычисляется, и, если результат его отличен от нуля, то результатом условного выражения будет значение второго выражения, иначе результат - значение третьего выражения. Все побочные эффекты вычисления первого выражения могут возникать до вычисления второго или третьего выражения. Если второе и третье выражение арифметического типа, и типы их совпадают, то таким же будет и тип результата, если они различаются, то выполняются обычные арифметические преобразования, чтобы привести их к общему типу. Если второе и третье выражение являются указателями или выражением-константой, дающим результат 0, выполняются преобразования указателей, чтобы привести результаты выражений к общему типу. Если второе и третье выражение являются ссылками, выполняется преобразование ссылок, чтобы привести их к общему типу. Если второе и третье выражение имеют тип void, общий тип будет void. Если второе и третье выражение имеют один тип класс T, общим типом будет T. Иначе, выражение считается недопустимым. Тип результата есть общий тип. Вычисляется только второе или третье выражение (но не оба). Результат будет адресом, если второй и третий операнд одного типа и являются адресами.