Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Логический оператор AND:
Синтаксис
logical-and-expression:
equality-expression
logical-and-expression
&&
equality-expression
Замечания
Логический оператор AND (&&) возвращается true , если оба операнда являются и возвращаются truefalse в противном случае. Операнды неявно преобразуются в тип bool перед оценкой, а результат — тип bool. Логический И имеет слева направо ассоциативность.
Операнды для логического оператора AND не должны иметь один и тот же тип, но они должны иметь логический, целочисленный или указательный тип. Операнды обычно реляционные или равные выражения.
Первый операнд полностью вычисляется, и все побочные эффекты завершаются до того, как оценка логического выражения AND продолжается.
Второй операнд оценивается только в том случае, если первый операнда оценивается true (ненулево). Эта оценка устраняет отсутствие необходимости в оценке второго операнда при использовании falseлогического выражения AND. Эту оценку короткого канала можно использовать для предотвращения деконференции указателя NULL, как показано в следующем примере:
char *pch = 0;
// ...
(pch) && (*pch = 'a');
Если pch значение равно null (0), справа от выражения никогда не вычисляется. Это кратковременное вычисление делает назначение с помощью указателя NULL невозможным.
Ключевое слово оператора для &&
C++ указывает and в качестве альтернативной орфографии для &&. В C альтернативная орфография предоставляется в виде макроса в заголовке <iso646.h> . В C++альтернативная орфография является ключевым словом; <использование iso646.h> или эквивалента <ciso646> C++ устарело. В Microsoft C++ /permissive- параметр или /Za компилятор требуется для включения альтернативной орфографии.
Пример
// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10, c = 15;
cout << boolalpha
<< "The true expression "
<< "a < b && b < c yields "
<< (a < b && b < c) << endl
<< "The false expression "
<< "a > b && b < c yields "
<< (a > b && b < c) << endl;
}
См. также
Встроенные операторы C++, приоритет и ассоциативность
Логические операторы C