24.2 연산자의 결합 방향 알아보기

보통 연산자는 → 방향으로 계산을 하지만 ← 방향인 것들도 있습니다.

operator_right_to_left.c

#include <stdio.h>

int main()
{
    int num1 = 1;
    int num2;

    num2 = ++num1;    // 변수를 먼저 평가하고 앞에 있는 ++을 계산

    printf("%d\n", num2);    // 2

    return 0;
}

실행 결과

2

대표적으로 변수 앞에 붙는 ++= 연산자가 ← 방향입니다. ++num1num1 변수를 먼저 평가(계산)하고, 앞에 있는 ++을 계산하여 1을 증가시킵니다.

num2 = ++num1에서 할당 연산자 =는 왼쪽에 있는 변수에 값이 들어가므로 ← 방향입니다. 만약 다음과 같이 변수 여러 개를 연달아 할당한다면 맨 뒤에 있는 num1 = 10부터 처리되어 num110이 들어간 뒤 ← 방향으로 값이 차례대로 할당됩니다.

num5 = num4 = num3 = num2 = num1 = 10;    // 오른쪽에서 왼쪽으로 차례 차례 할당

++, --=뿐만 아니라 +(양의 부호), -(음의 부호), !, ~ 등 변수나 숫자 앞쪽에 붙는 연산자도 ← 방향입니다. 단, 변수 뒤에 붙는 ++, --는 연산 방향이 → 입니다.