문제
C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은?
㉠ ( ) ㉡ == ㉢ < ㉣ << ㉤ || ㉥ /
① ㉠, ㉥, ㉣, ㉢, ㉡, ㉤ ② ㉠, ㉣, ㉥, ㉢, ㉡, ㉤ ③ ㉠, ㉣, ㉥, ㉢, ㉤, ㉡ ④ ㉠, ㉥, ㉣, ㉤, ㉡, ㉢
정답
1번
해설
정답: 1. C언어 연산자 우선순위는 괄호 ( ) > 산술(/) > 시프트(<<) > 관계(<) > 동등(==) > 논리합(||) 순이다. 따라서 ㉠( ) → ㉥(/) → ㉣(<<) → ㉢(<) → ㉡(==) → ㉤(||) 순서인 ①이 옳다.
오답 풀이
- 1번: ( ) > / > << > < > == > || 순서로 올바르게 나열되어 정답이다.
- 2번: 시프트(<<)가 산술(/)보다 앞에 와서 순서가 틀리다.
- 3번: 동등(==)과 논리합(||)의 순서가 뒤바뀌었다.
- 4번: 산술·시프트·관계·동등·논리합의 순서가 어긋난다.
보충 개념 C 연산자 우선순위(높음→낮음): ( ) > 단항 > 산술(*, /, %) > 덧셈·뺄셈 > 시프트(<<, >>) > 관계(<, >) > 동등(==, !=) > 논리(&&, ||) > 대입(=) > 콤마.