연산의 우선순위
연산의 우선순위
수학이나 프로그래밍에서는 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자를 먼저 처리해야 되는지를 정하기 위하여 연산의 우선순위를 미리 정해놓고 있습니다.
연산의 우선순위에 대한 더욱 자세한 내용은 초등학교 수학 과목에서 배우실 수 있습니다.
연산의 우선순위는 프로그래밍 언어에서 사용되는 연산자의 처리 순서를 이해하는 데 도움을 줍니다.
프로그래밍에서의 연산자 우선순위(operator precedence)
각 프로그래밍 언어마다 사용할 수 있는 연산자가 약간씩 다르며, 그 의미도 약간씩 차이가 나는 경우가 있습니다.
따라서 각 프로그래밍 언어를 배울 때마다 연산자 우선순위를 한 번쯤은 확인할 필요가 있습니다.
예제로 C언어에서의 연산자 우선순위는 다음과 같으며, 우선순위가 빠른 연산자가 가장 먼저 실행됩니다.
우선순위 | 연산자 | 설명 |
---|---|---|
1 | ++ | 후위 증가 연산자 |
-- | 후위 감소 연산자 | |
() | 함수 호출 | |
[] | 첨자 연산자 | |
. | 참조에 의한 선택 | |
-> | 포인터를 통한 선택 | |
2 | ! | 논리 NOT 연산자 |
~ | 비트 NOT 연산자 | |
+ | 양의 부호 (단항 연산자) | |
- | 음의 부호 (단항 연산자) | |
++ | 전위 증가 연산자 | |
-- | 전위 감소 연산자 | |
(타입) | 타입 캐스트 연산자 | |
* | 참조 연산자 (단항 연산자) | |
& | 주소 연산자 (단항 연산자) | |
sizeof | 크기 | |
3 | * | 곱셈 연산자 |
/ | 나눗셈 연산자 | |
% | 나머지 연산자 | |
4 | + | 덧셈 연산자 (이항 연산자) |
- | 뺄셈 연산자 (이항 연산자) | |
5 | << | 비트 왼쪽 시프트 연산자 |
>> | 부호 비트를 확장하면서 비트 오른쪽 시프트 | |
6 | < | 관계 연산자(보다 작은) |
<= | 관계 연산자(보다 작거나 같은) | |
> | 관계 연산자(보다 큰) | |
>= | 관계 연산자(보다 크거나 같은) | |
7 | == | 관계 연산자(와 같은) |
!= | 관계 연산자(와 같지 않은) | |
8 | & | 비트 AND 연산자 |
9 | ^ | 비트 XOR 연산자 |
10 | | | 비트 OR 연산자 |
11 | && | 논리 AND 연산자 |
12 | || | 논리 OR 연산자 |
13 | ? : | 삼항 조건 연산자 |
14 | = |
대입 연산자 및 복합 대입 연산자 (=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=) |
15 | , | 쉼표 연산자 |