Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Логический оператор 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