y > 1)? " />
연결된 논리 연산자: C에서 (4 > y > 1) 평가
C에서 명령문 (4 > y > 1) 논리적으로 보일 수 있지만 평가는 특정 작업 순서를 따릅니다.
파싱 및 평가 순서
문은 ((4 > y) > 1)로 구문 분석됩니다. 비교 연산자(< 및 >)는 왼쪽에서 오른쪽으로 평가됩니다. > y는 true인 경우 0을 반환하고 false인 경우 1을 반환합니다.
결과를 비교합니다. 평가
0 또는 1은 1보다 크지 않으므로 전체 문은 항상 false를 반환합니다. 그러나 y가 > 연산자가 오버로드된 클래스의 객체인 경우에는 예외가 발생합니다. 이러한 경우 오버로드된 연산자의 동작에 따라 결과가 결정됩니다.
오버로드 예외
다음 코드 조각을 고려하세요.
class mytype{}; mytype operator>(int x, const mytype &y) { return mytype(); } int main() { mytype y; cout << (4 > y > 1) << endl; return 0; }
y가 mytype 클래스이고 > 연산자가 오버로드된 이 예에서는 코드가 컴파일되지 않습니다.
위 내용은 C는 (4 > y > 1)과 같은 연결 비교 연산자를 어떻게 평가합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!