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

C/C++ 전위 증가(++i)와 후위 증가(i++) 연산자의 개념과 차이

증감 연산자란 무엇인가?

증가 연산자(Increment Operator)는 변수의 값을 1만큼 증가시키는 연산자이며, 감소 연산자(Decrement Operator)는 그 반대로 변수의 값을 1만큼 감소시킵니다. C와 C++에서는 각각 ++-- 기호로 표현하며, 연산자를 변수 앞에 두느냐 뒤에 두느냐에 따라 전위(prefix) 방식과 후위(postfix) 방식으로 나뉩니다.

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

변수에 값을 대입하기 전에 먼저 값을 1 증가시킵니다. 즉, 증가된 새로운 값이 곧바로 연산에 사용됩니다.

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

변수의 현재 값을 먼저 대입·사용한 후에 값을 1 증가시킵니다. 따라서 해당 문장에서는 증가되기 전의 값이 사용됩니다.

기본 문법

++variable_name; // 전위 증가 (Pre-increment)
variable_name++; // 후위 증가 (Post-increment)

여기서 variable_name은 사용자가 임의로 지정한 변수 이름을 의미합니다.

C++ 예제 코드

#include <iostream>
using namespace std;

int main() {
    int i = 5;
    cout << "전위 증가 값: " << i;
    while (++i < 10)
        cout << "\t" << i;
    cout << "\n후위 증가 값: " << i;
    while (i++ < 15)
        cout << "\t" << i;
    return 0;
}

실행 결과

전위 증가 값: 5   6   7   8   9
후위 증가 값: 10   11   12   13   14   15

전위 증가와 후위 증가의 차이 정리

위 예제의 첫 번째 while 루프는 전위 증가(++i)를 사용하므로 조건을 검사하기 전에 i가 먼저 증가하여 6, 7, 8, 9가 출력됩니다. 반면 두 번째 루프는 후위 증가(i++)를 사용하므로 현재 값으로 조건을 검사한 뒤 값이 증가하고, 증가된 값이 화면에 출력됩니다.

구분전위 증가 (++i)후위 증가 (i++)
연산 순서값을 먼저 1 증가시킨 후 사용현재 값을 먼저 사용한 후 1 증가
표현식의 결과값증가된 새로운 값증가되기 전의 기존 값
단독으로 사용할 때두 방식 모두 결과 동일 (i = i + 1)

정리하면, 증감 연산자를 단독으로 사용할 때는 전위와 후위 방식의 결과가 같지만, 다른 연산이나 조건문과 함께 사용할 때는 동작 순서의 차이 때문에 결과가 달라질 수 있습니다. 따라서 반복문이나 복잡한 수식 안에서 증감 연산자를 사용할 때는 전위와 후위의 차이를 항상 염두에 두어야 합니다.