프로그래밍 강의/C#

C# 6.0, 연산자 우선순위

wnsrn3436 2016. 4. 10. 16:51

'-'는 우선순위 목록을 나타냅니다. 같은 '-' 항목들의 연산자 우선순위는 동일하며 '좌' 혹은 '우' 결합성에 따라 순서대로 실행됩니다. 할당 연산자는 '우' 결합성이기 때문에 'a = b = 3' 과 같은 식이 허용(b가 3이 되고 a가 b이 됨, 즉 a도 3이 됨)됩니다.


우선순위 목록(-)이 아래에 있을수록 더 늦게 실행됩니다. 그래서 '곱하기 연산자'보다 '가산 연산자'가 늦게 실행됩니다. 연산자와 우선순위 목록이 많기 때문에 일일이 외우기가 쉽지 않을 것입니다. 하지만 다음과 같이 구분하여 쉽게 외울 수 있는 방법이 있습니다.


단항 연산자는 피연산자가 한 개 있는 연산자를 뜻하며 두 번째로 우선순위가 높습니다. (사실상 기본 연산자도 단항으로 이루어지기 때문에 단항은 높다고 생각하면 됩니다)

할당 연산자는 =가 붙어있는 연산자를 뜻하며 연산자 우선순위가 제일 낮습니다.


이것만 외워두면 그밖에는 상식적인 수준에서 외울 수 있습니다.


곱하기와 가산 > 비트 시프트 > 비교와 상등 > 비트 연산자 > null 병합 > 3항 연산자(조건 연산자)


그렇다면 이제 비트로써 홀짝을 테스팅하는 코드는 다음과 같이 비트 연산자를 괄호로 묶어서 이루어져야 함을 알 수가 있습니다.


if ( (test & 1) == 1) ;


- 기본 연산자

x.y    x?.y    a[x]    a?[x]    x++    x--    f(x)    new    default    checked

unchecked    delegate    typeof    sizeof    nameof    ->


- 단항 연산자

+x    -x    !x    ~x    ++x    --x    (T)x    await    &x    *x


- 곱하기 연산자

x * y    x / y    x % y


- 가산 연산자

x + y    x - y


- 시프트 연산자

x << y    x >> y


- 관계형 및 형식 테스트 연산자

x < y    x > y    x <= y    x >= y    is    as


- 상등 연산자

x == y    x != y


- 논리적 AND 연산자

x & y


- 논리적 XOR 연산자

x ^ y


- 논리적 OR 연산자

x | y


- 조건부 AND 연산자

x && y


- 조건부 OR 연산자

x || y


- null 병합 연산자

x ?? y


- 조건 연산자

(bool) ? (true) : (false)


- 할당 및 람다 연산자

x = y    x += y    x -= y    x *= y    x /= y    x %= y    x &= y    x ^= y    x |= y    x <<= y

x >>= y    =>

Comments