Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 증가·감소 연산자 완벽 정리: 전위(Pre)와 후위(Post) 연산자 차이와 예제 프로그램

C 언어에는 변수의 값을 1씩 늘리거나 줄이는 증가 연산자(++)감소 연산자(--)가 있습니다. 이 두 연산자는 각각 전위(prefix) 방식과 후위(postfix) 방식으로 사용할 수 있으며, 연산자가 피연산자 앞에 오느냐 뒤에 오느냐에 따라 실행 결과가 달라집니다.


1. 증가 연산자 (++), Increment Operator


증가 연산자는 변수의 값을 1만큼 증가시키는 단항 연산자입니다. 전위 증가와 후위 증가, 두 가지 형태로 나뉩니다.


전위 증가 연산자 (++a)


연산자를 피연산자 앞에 배치합니다. 이 경우 값이 먼저 증가한 후 해당 값을 다른 변수에 대입하거나 연산에 사용합니다.

z = ++a;   // a = a + 1 먼저 실행
           // 그 다음 z = a 실행

후위 증가 연산자 (a++)


연산자를 피연산자 뒤에 배치합니다. 이 경우 현재 값을 먼저 사용한 후 값이 증가합니다.

z = a++;   // 먼저 z = a 실행
           // 그 다음 a = a + 1 실행

예제 1 — 전위 증가 연산자


main() {
    int A = 10, Z;
    Z = ++A;
    printf("Z= %d", Z);
    printf(" A=%d", A);
}

실행 결과


Z=11
A=11

A가 먼저 11로 증가한 뒤 Z에 대입되므로, Z와 A 모두 11이 출력됩니다.


예제 2 — 후위 증가 연산자


main() {
    int a = 10, z;
    z = a++;
    printf("Z= %d", z);
    printf("A=%d", a);
}

실행 결과


Z=10
A=11

Z에는 증가하기 전의 원래 값인 10이 대입되고, 이후 A는 11로 증가합니다.


2. 감소 연산자 (--), Decrement Operator


감소 연산자는 변수의 값을 1만큼 감소시키는 단항 연산자입니다. 마찬가지로 전위 감소와 후위 감소, 두 가지 형태가 있습니다.


전위 감소 연산자 (--a)


연산자를 피연산자 앞에 배치합니다. 값이 먼저 감소한 후 연산에 사용됩니다.

z = --a;   // a = a - 1 먼저 실행
           // 그 다음 z = a 실행

후위 감소 연산자 (a--)


연산자를 피연산자 뒤에 배치합니다. 현재 값을 먼저 사용한 후 값이 감소합니다.

z = a--;   // 먼저 z = a 실행
           // 그 다음 a = a - 1 실행

예제 1 — 전위 감소 연산자


main() {
    int a = 10, z;
    z = --a;
    printf("Z= %d", z);
    printf(" A=%d", a);
}

실행 결과


Z=9
A=9

a가 먼저 9로 감소한 뒤 z에 대입되므로, 두 변수 모두 9가 출력됩니다.


예제 2 — 후위 감소 연산자


main() {
    int a = 10, z;
    z = a--;
    printf("Z= %d", z);
    printf("A=%d", a);
}

실행 결과


Z=10
A=9

z에는 감소하기 전의 값인 10이 대입되고, 이후 a는 9로 감소합니다.


정리: 전위 vs 후위 연산자 핵심 차이


  • 전위(++a / --a): 값이 먼저 변경된 후 결과가 사용됩니다.

  • 후위(a++ / a--): 기존 값이 먼저 사용된 후 값이 변경됩니다.


단독으로 사용될 때는 결과가 같지만, 다른 변수에 대입하거나 표현식 내에서 사용할 때는 위 예제처럼 결과가 달라지므로 주의해야 합니다. 반복문에서 카운터를 조작할 때 특히 자주 활용되니 개념을 확실히 익혀두는 것이 좋습니다.