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

C++ 증감 연산자 완벽 정리: i++와 ++i의 차이와 사용 시기

증가 연산자(Increment Operator)는 변수의 값을 1만큼 늘리는 연산자이며, 감소 연산자(Decrement Operator)는 그 반대로 값을 1만큼 줄입니다. C++에서는 증가 연산자를 전위 증가(++i)후위 증가(i++) 두 가지 방식으로 사용할 수 있습니다.

전위 증가(++i)와 후위 증가(i++)의 차이

전위 증가(++i) – 값을 변수에 대입하기 전에 먼저 1을 더합니다.

후위 증가(i++) – 값을 변수에 대입한 후에 1을 더합니다.

C++에서 i++와 ++i의 기본 문법은 다음과 같습니다.

++variable_name; // 전위 증가
variable_name++; // 후위 증가

여기서 variable_name은 사용자가 지정한 변수 이름입니다.

C++ 예제 코드

다음은 C++에서 전위 증가와 후위 증가를 보여주는 예제입니다.

#include <iostream>
using namespace std;
int main() {
   int i = 5;
   cout << "The pre-incremented value: " << i;
   while(++i < 10 )
   cout<<"\t"<<i;
   cout << "\nThe post-incremented value: " << i;
   while(i++ < 15 )
   cout<<"\t"<<i;
   return 0;
}

실행 결과

The pre-incremented value: 56789
The post-incremented value: 101112131415

위 프로그램에서는 main() 함수 안에 전위 증가와 후위 증가 코드가 모두 포함되어 있습니다. 정수형 변수 i는 값이 10보다 작을 때까지 전위 증가(++i)로 처리되고, 이후에는 값이 15보다 작을 때까지 후위 증가(i++)로 처리됩니다.

while(++i < 10 )
printf("%d\t",i);
cout << "\nThe post-incremented vaue : " << i;
while(i++ < 15 )
printf("%d\t",i);

그렇다면 언제 i++ 또는 ++i를 사용해야 할까?

연산자를 단독으로 사용하는 경우(예: for 루프의 증감식) 두 연산자의 동작 결과는 동일합니다. 하지만 다른 표현식 안에서 함께 사용될 때는 결과가 달라지므로 주의해야 합니다.

  • 전위 증가(++i): 값을 먼저 증가시킨 뒤 사용하므로, 증가된 값을 곧바로 활용해야 할 때 적합합니다. 특히 int 같은 기본 타입뿐 아니라 STL 반복자(iterator)처럼 임시 객체 생성 비용이 발생할 수 있는 클래스 타입에서는 성능상 ++i를 사용하는 것이 일반적으로 권장됩니다.
  • 후위 증가(i++): 현재 값을 먼저 사용한 뒤 증가시키므로, 배열 인덱스 접근 후 카운터를 올리는 등 '기존 값 우선' 로직에 적합합니다.

정리하면, 특별한 이유가 없다면 불필요한 임시 복사를 피하기 위해 ++i를 기본으로 사용하고, 현재 값을 먼저 활용해야 하는 상황에서만 i++를 선택하는 것이 좋은 코딩 습관입니다.