0
A
답변
1
먼저 작업 평가 순서를 알아야합니다. 도움을 받으려면 this table의 연관성 열을 사용하십시오. 다음으로 k > i
값이 무엇인지 알아보십시오. 시도해 보려면 printf
을 사용하십시오. 마지막으로, 마지막 표현식의 값을 계산하고 프로그램을 실행하여 응답이 올바른지 확인하십시오.
1
k > i < j
은 표현식이며 printf
이 호출되기 전에 완전히 평가됩니다. 모두 printf
는 평가 결과입니다. 평가 대상은 운영자가 단순히 오른쪽에서 왼쪽으로 개별적으로 평가됩니다. 따라서 k > i
이 먼저 평가되고, 그 다음에 <
에 적용되고 그 결과가 j
인 것으로 계산됩니다.
우리가 <
및 >
이외의 연산자를 사용하면이 작업이 다르게 진행될 수 있습니다. 그것들은 우연히 똑같은 우선 순위를 가지기 때문에 항상 왼쪽에서 오른쪽으로 평가됩니다. 반면에 우리가 k + i * j
이라면, i * j
이 먼저 평가 될 것입니다. *
의 우선 순위가 +
보다 높기 때문입니다.
2
바라건대 그것은 불법이어야하는 것처럼 혼란 스럽기 때문에 아무것도 인쇄하지 않기를 바랍니다. 우리가 절대적으로 그것을해야 할 경우에는 :
k > i < j
은 두 부분으로 나눌 수 것 : k > i
, 그 결과는 j
비교됩니다. 이와 같은 비교의 결과는 true
인 경우 1이고 false
인 경우 0입니다. k > i
은 false
이므로 0이됩니다. 0 < j
은 true
이므로 1을 얻습니다.
테이블에 많은 도움을 주셔서 감사합니다! – udjat