C 논리 연산자
논리 연산자는 논리 수행-와 (& &) 및 논리적 OR ( || ) 운영 합니다.
구문
및-논리식:
포함 OR 식및-논리식 & & 포함 OR 식
논리적 OR 식:
-및-논리식논리적 OR 식 |-및-논리식
논리 연산자는 일반적인 산술 변환을 수행 하지 않습니다.대신, 각 피연산자의 그 동일성을 0 평가합니다.논리 작업의 결과 0 또는 1입니다.그 결과 형식이 int.
C 논리 연산자는 다음과 같습니다.
Operator |
설명 |
---|---|
&& |
논리-및 연산자 두 피연산자가 모두 0이 아닌 값이 있는 경우 값 1을 생성 합니다.피연산자 중 하나가 0 이면 결과 0입니다.하는 경우 첫 번째 피연산자의 논리-고 작업 0, 두 번째 피연산자는 평가 되지 않습니다. |
|| |
논리적 OR 연산자는 피연산자에서 포괄적인 논리합 연산을 수행 합니다.두 피연산자가 모두 0 값이 있는 경우 결과 0입니다.피연산자 중 하나가 0이 아닌 값이 있는 경우, 결과 1입니다.논리 OR 연산의 첫 번째 피연산자는 0이 아닌 값이 있으면 두 번째 피연산자는 계산 되지 않습니다. |
피연산자의 논리-하 고 논리적 OR 식을 왼쪽에서 오른쪽으로 평가 됩니다.첫 번째 피연산자의 값 작업의 결과 결정할 수 있으면 두 번째 피연산자는 계산 되지 않습니다.이것을 "단락 계산 합니다." 라고 후 첫 번째 피연산자 시퀀스 위치가입니다.참조 하십시오 시퀀스 위치 에 대 한 자세한 내용은.
예제
다음 예제에서는 논리 연산자에 설명합니다.
int w, x, y, z;
if ( x < y && y < z )
printf( "x is less than z\n" );
이 예는 printf 함수가 호출 하는 경우 메시지를 표시 합니다. x 입니다 보다 작은 y 및 y 입니다 보다 작은 z.경우 x 보다 큰 y, 두 번째 피연산자 (y < z)는 아무 것도 인쇄 되지.두 번째 피연산자에 다른 이유로 의존 되는 효과 있는 경우 문제가 발생할 수 있음을 note입니다.
printf( "%d" , (x == w || x == y || x == z) );
이 예제에서는 경우 x 를 동일 w, y, 또는 z, 두 번째 인수에는 printf 함수 true로 계산 하 고 1 값이 출력 됩니다.그렇지 않은 경우 false로 평가 되 고 0 값이 출력 됩니다.계산 조건 중 하나가 true로 계산 되는 즉시 소멸 됩니다.