논리 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;
}
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기