C++의 접미사 연산자(Postfix Operator)는 하나의 변수에 적용되는 단항 연산자(unary operator)로, 해당 변수의 값을 1씩 증가시키거나 감소시키는 역할을 합니다. 물론 사용자가 연산자 오버로딩으로 동작을 재정의하지 않은 경우에 한정됩니다.
C++에는 두 가지 접미사 연산자가 있습니다.
++: 값을 1 증가시키는 증가 연산자--: 값을 1 감소시키는 감소 연산자
접미사 표기법의 동작 방식
접미사 표기법(예: i++)에서는 변수 i의 값 자체는 증가하지만, 표현식(expression)의 결과값은 증가하기 전의 원래 값이라는 점이 핵심입니다.
즉, 접미사 연산자는 다음 순서로 동작합니다.
- 먼저 변수의 현재 값을 표현식에 반환(할당)한다.
- 그다음에 변수의 값을 1 증가(또는 감소)시킨다.
예제 코드
#include<iostream>
using namespace std;
int main() {
int j = 0, i = 10;
// j = i++ 를 실행하면 j는 i의 현재 값(10)을 받고,
// 그 후에 i의 값이 1 증가하여 11이 됩니다.
j = i++;
cout << j << ", " << i << "\n";
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 출력을 얻습니다.
10, 11
접두사 연산자와의 차이점
접미사 연산자(i++)와 반대로, 접두사 연산자(++i)는 먼저 값을 증가시킨 후 그 결과값을 표현식에 반환합니다. 따라서 위 예제에서 j = ++i;라고 작성했다면 출력 결과는 11, 11이 됩니다.
이처럼 단독으로 사용할 때는 두 연산자의 차이가 없지만, 대입문이나 조건문 등 다른 표현식 안에서 사용할 때는 결과가 달라지므로 주의해서 사용해야 합니다.