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