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

C++ 전위 연산자(++i)와 후위 연산자(i++)의 차이점 완벽 정리

C++에서 증감 연산자는 전위(prefix) 방식과 후위(postfix) 방식 두 가지로 사용할 수 있습니다. 두 방식 모두 변수의 값을 1만큼 증가시키지만, 표현식이 반환하는 값에서 중요한 차이가 있습니다.

전위 연산자(++i)와 후위 연산자(i++)의 동작 원리

전위 연산자(++i)는 변수 i의 값을 먼저 증가시킨 후, 그 표현식의 값으로 증가된 새로운 값을 반환합니다. 즉, '먼저 증가하고, 나중에 값을 할당'하는 방식입니다.

반면 후위 연산자(i++)는 변수 i의 값을 증가시키기는 하지만, 표현식의 값으로는 증가하기 전의 원래 값을 반환합니다. 즉, '먼저 값을 할당하고, 나중에 증가'하는 방식입니다.

예제 코드

실제 코드를 통해 두 연산자의 차이를 자세히 살펴보겠습니다.

#include<iostream>
using namespace std;

int main() {
    int x = 3, y, z;
    y = x++;
    z = ++x;
    cout << x << ", " << y << ", " << z;
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

5, 3, 5

결과 분석

왜 이런 결과가 나오는지 단계별로 살펴보겠습니다.

  • x를 3으로 초기화합니다.
  • y = x++; — 후위 연산자이므로 먼저 증가하기 전의 x 값(3)을 y에 할당한 뒤, x를 4로 증가시킵니다. 따라서 y = 3입니다.
  • z = ++x; — 전위 연산자이므로 먼저 x를 5로 증가시킨 뒤, 증가된 값(5)을 z에 할당합니다. 따라서 z = 5입니다.
  • 마지막으로 x, y, z의 값을 출력하면 5, 3, 5가 됩니다.

정리

결론적으로, 전위 연산자(++i)는 '증가 후 사용', 후위 연산자(i++)는 '사용 후 증가'라는 핵심 차이가 있습니다. 단독 문장으로 사용할 때는 결과가 같지만, 다른 표현식 내에서 사용될 때는 반환되는 값이 달라지므로 상황에 맞게 올바르게 선택해야 합니다.