10 번 문제에 오류가 있는 듯합니다.
printf("%d 그리고 %d", deq(&q), deq(&q));에서 두 deq(&q) 중 어느 것이 먼저 평가될 지는 정의되지 않는 것으로 알고 있습니다.
근거에 대해서 cppreference.com의 Order of evaluation 링크를 참조합니다.
There is no concept of left-to-right or right-to-left evaluation in C, which is not to be confused with left-to-right and right-to-left associativity of operators: the expression f1() + f2() + f3() is parsed as (f1() + f2()) + f3() due to left-to-right associativity of operator+, but the function call to f3() may be evaluated first, last, or between f1() or f2() at run time.
제 주장이 맞는지, 아니면 주장에 오류가 있는지 확인해 주시면 감사하겠습니다.
현재 해설에도 "3 그리고 2"와 "2 그리고 3"이 혼재되어 있습니다.
안녕하세요.
별도로 평가 순서가 제시되지 않았으므로,
일반적인 컴파일러에 의한 호출은 왼쪽부터 순차적으로 진행되는 것을 전제로 해설하였습니다.
시행처에서 채점 기준이나 정답을 공개하지 않으므로 이런 경우에 대한 명확한 기준을 말씀드리기는 어렵습니다.
근거로 제시하신 것과 같이 결합성 평가 순서가 컴파일러에 따라 달라지는 경우가 있다면, 시행처에서는 이를 감안하셔 채점할 것으로 생각됩니다.
혹 구체적인 채점 기준이 궁금하시다며, 한국산업인력공단에 문의하실 수 있으니 이점 참고하세요.
즐거운 하루 되세요.
-
관리자2026-02-23 14:59:50
안녕하세요.
별도로 평가 순서가 제시되지 않았으므로,
일반적인 컴파일러에 의한 호출은 왼쪽부터 순차적으로 진행되는 것을 전제로 해설하였습니다.
시행처에서 채점 기준이나 정답을 공개하지 않으므로 이런 경우에 대한 명확한 기준을 말씀드리기는 어렵습니다.
근거로 제시하신 것과 같이 결합성 평가 순서가 컴파일러에 따라 달라지는 경우가 있다면, 시행처에서는 이를 감안하셔 채점할 것으로 생각됩니다.
혹 구체적인 채점 기준이 궁금하시다며, 한국산업인력공단에 문의하실 수 있으니 이점 참고하세요.
즐거운 하루 되세요.