>백엔드 개발 >C++ >C의 `(4 > y > 1)`이 예상대로 평가됩니까?

C의 `(4 > y > 1)`이 예상대로 평가됩니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 02:46:09921검색

Does `(4 > y > 1)` in C 예상대로 평가하나요?
y > 1)` C에서 예상대로 평가하시겠습니까? " />

연속 논리 연산자 평가: C의 (4 > y > 1)

C의 표현식 (4 > y > 1) 그 타당성과 평가에 대한 의문이 제기됩니다. 설명:

유효성:

식 자체는 C에서 구문적으로 유효하지만 의미론적 해석은 예상치 못한 것일 수 있습니다.

평가 순서 :

C는 논리 연산자를 왼쪽에서 오른쪽으로 평가합니다. 따라서 (4 > y > 1)은 ((4 > y) > 1)로 해석됩니다.

의미적 해석:

식( (4 > y) > 1) (4 > y)의 결과를 1과 비교합니다. y)는 y가 4보다 작으면 1을 반환하고 그렇지 않으면 0을 반환합니다.

결과:

0 또는 1은 1보다 클 수 없으므로 식((4 > y) > 1)은 항상 거짓으로 평가됩니다. 즉, (4 > y > 1)은 결코 참이 아닙니다. y 값에 관계없이.

다시 작성:

더 의미 있는 표현은 연결된 보다 큼 연산자 대신 논리 AND(&&)를 사용하는 것입니다. 예:

(4 > y) && (y > 1)

이 표현식은 (4 > y)와 (y > 1)이 모두 참인 경우에만 참입니다.

예외:

어떤 경우에는 연결된 논리 연산자의 동작이 예상 결과와 다를 수 있습니다. 특히 y가 > 연산자를 어떻게 구현하느냐에 따라 결과가 달라질 수 있습니다.

위 내용은 C의 `(4 > y > 1)`이 예상대로 평가됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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