y > 1) C에서는 항상 False로 평가됩니까? " />
C에서 (4 > y > 1)의 유효성 평가
C에서 표현식 (4 > y > 1) 타당성과 평가에 대한 의문이 제기될 수 있습니다.
동작을 이해하려면 연쇄 비교를 아는 것이 중요합니다. (4 > y > 1)과 같은 연산자는 왼쪽에서 오른쪽으로 중첩된 비교로 구문 분석됩니다. 따라서 문은 다음과 같이 구문 분석됩니다.
(4 > y > 1)
비교 연산자(> 및 <)는 표현식 순서대로 평가합니다. 즉, (4 > y)의 결과는 0이거나 0입니다. (false) 또는 1(true)입니다.
((4 > y) > 1)그런 다음 (4>y)의 결과는 보다 큼 연산자(>)를 사용하여 1과 비교됩니다. of (4 > y)는 항상 0 또는 1이며 1보다 클 수 없습니다. 따라서 전체 문은 항상 다음을 반환합니다. false.
연산자 오버로드 예외:
그러나 y가 오버로드된 보다 큼 연산자가 있는 클래스의 객체인 경우에는 예외가 있습니다. (>)인 경우 평가가 변경될 수 있습니다. 이러한 경우 오버로드된 연산자의 구현에 따라 표현식의 동작이 결정됩니다.
예:
다음 코드를 고려하세요.
In 이 예에서는 맞춤 연산자인 Operator> mytype 클래스를 사용하므로 클래스 구현에 따라 동작이 달라질 수 있습니다.
위 내용은 C에서 (4 > y > 1)은 항상 False로 평가됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!