연산자의 우선순위와 결합 규칙
대부분 잘 알지만, 헷갈리는 부분을 정리해보았다.
1. AND 그리고 OR 연산 순위
- AND 즉, '&' 또는 '&&'가 '||'보다 연산 순위가 높다.
2. 시프트 연산자
- 만약 "x << 2 + 1"이 있다면, + 연산자가 우선순위가 높기에 +를 먼저 진행하고 시프트 연산을 수행한다.
3. 결합 규칙(우선순위)
(1) 산술 > 비교 > 논리 > 대입
(2) 단항 > 이항 > 삼항
(3) 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽이다.
(보통 왼쪽에서 오른쪽으로 연산하는 것이 일반적인데, 가끔 오른쪽에서 왼쪽으로 연산을 수행하는 경우도 있다.
예를 들자면, x = y = 3인 경우이다. 이때, 프로그램은 오른쪽에서 왼쪽으로 수행한다.)
4. 단항 연산자
- ++, --, +, -, ~, !, (type) 같은 경우들이 단항 연산자 인데, 오른쪽에서 왼쪽으로 수행하는 것이 일반적이다.
5. 대입 연산자
- =, +=, -=, *=, /=, %=, >>=, <<=, &=, ^=, != 같은 경우들이 대입 연산자들인데, 위에서도 말했듯이 오른쪽에서
왼쪽으로 수행하는 것이 일반적이다.
6. 증감 연산자
- ++, --를 의미한다.
- 전위형, 후위형이 존재한다.
- 예제
(답은 -2이다.)
(답은 -9이다.)
(이처럼 지나치게 복잡하면 가독성이 안 좋기 때문에, 바람직하지 않다.)
(그래서 식에 두 번 이상 포함된 변수에 증감연산자를 사용하는 것은 피해야 한다.)
7. 부호 연산자
- +, -를 말한다.
- +는 하는 일이 없으므로, 거의 사용되지 않고 -를 사용한다.
- 예제