>백엔드 개발 >C++ >C에서 (4 > y > 1)은 항상 False로 평가됩니까?

C에서 (4 > y > 1)은 항상 False로 평가됩니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-25 16:49:09226검색

Does (4 > y > 1) C에서는 항상 False로 평가되나요?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.