2012-11-10 3 views

답변

1

먼저 작업 평가 순서를 알아야합니다. 도움을 받으려면 this table의 연관성 열을 사용하십시오. 다음으로 k > i 값이 무엇인지 알아보십시오. 시도해 보려면 printf을 사용하십시오. 마지막으로, 마지막 표현식의 값을 계산하고 프로그램을 실행하여 응답이 올바른지 확인하십시오.

+0

테이블에 많은 도움을 주셔서 감사합니다! – udjat

1

k > i < j은 표현식이며 printf이 호출되기 전에 완전히 평가됩니다. 모두 printf는 평가 결과입니다. 평가 대상은 운영자가 단순히 오른쪽에서 왼쪽으로 개별적으로 평가됩니다. 따라서 k > i이 먼저 평가되고, 그 다음에 <에 적용되고 그 결과가 j 인 것으로 계산됩니다.

우리가 <> 이외의 연산자를 사용하면이 작업이 다르게 진행될 수 있습니다. 그것들은 우연히 똑같은 우선 순위를 가지기 때문에 항상 왼쪽에서 오른쪽으로 평가됩니다. 반면에 우리가 k + i * j이라면, i * j이 먼저 평가 될 것입니다. *의 우선 순위가 +보다 높기 때문입니다.

+1

그렇다면 true/false 평가 일 뿐이므로 0 또는 1을 반환한다고 가정 할 수 있습니까? – udjat

+0

@ChuhanFrankQin, 예, 둘 다 '<' and '>'은 부울 연산자이므로 항상 0 또는 1을 반환합니다. – jrajav

+0

고마워요! 나는 지금 내 질문이 어리석은 것을 깨닫는다. – udjat

2

바라건대 그것은 불법이어야하는 것처럼 혼란 스럽기 때문에 아무것도 인쇄하지 않기를 바랍니다. 우리가 절대적으로 그것을해야 할 경우에는 :

k > i < j은 두 부분으로 나눌 수 것 : k > i, 그 결과는 j 비교됩니다. 이와 같은 비교의 결과는 true 인 경우 1이고 false 인 경우 0입니다. k > ifalse이므로 0이됩니다. 0 < jtrue이므로 1을 얻습니다.