논리 AND 연산자: &&

구문

logical-and-expression:
equality-expression
logical-and-expression && equality-expression

설명

논리 AND 연산자(&&)는 두 피연산자가 모두 있으면 반환 true 하고, 그렇지 않으면 반환 false 합니다true. 피연산자는 평가 전에 암시적으로 형식 bool 으로 변환되고 결과는 형식 bool입니다. 논리 AND에는 왼쪽에서 오른쪽으로의 결합성이 있습니다.

논리 AND 연산자에 대한 피연산자는 동일한 형식을 가질 필요는 없지만 부울, 정수 또는 포인터 형식이 있어야 합니다. 피연산자는 일반적으로 관계형 또는 동등 식입니다.

첫 번째 피연산자는 완전히 평가되고 논리 AND 식의 평가가 계속되기 전에 모든 부작용이 완료됩니다.

두 번째 피연산자는 첫 번째 피연산자가 0이 아닌 것으로 계산되는 true 경우에만 평가됩니다. 이 평가에서는 논리 AND 식이 있을 때 두 번째 피연산자를 불필요하게 평가하지 않습니다 false. 다음 예제와 같이 이 단락(short-circuit) 계산을 사용하여 null 포인터 역참조를 방지할 수 있습니다.

char *pch = 0;
// ...
(pch) && (*pch = 'a');

pch가 null(0)인 경우 식의 오른쪽이 계산되지 않습니다. 이 단락 평가는 null 포인터를 통한 할당을 불가능하게 만듭니다.

연산자 키워드(keyword)&&

C++는 .에 대한 &&대체 맞춤법으로 지정 and 합니다. C에서는 대체 맞춤법이 iso646.h> 헤더에 <매크로로 제공됩니다. C++에서 대체 맞춤법은 키워드(keyword). iso646.h> 또는 C++ 동등한 <ciso646>의 사용<은 더 이상 사용되지 않습니다. 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 논리 연산자