후위 증가 및 감소 연산자: ++ 및 --
postfix-expression ++
postfix-expression ––
설명
C++는 전위/후위 증가 및 감소 연산자를 제공합니다. 이 단원에서는 후위 증가 및 감소 연산자에 대해서만 설명합니다. 자세한 내용은 전위 증가 및 감소 연산자를 참조하십시오. 후위 표기법과 전위 표기법의 차이는 후위 표기법에서는 연산자가 후위 식 뒤에 표시되지만 전위 표기법에서는 연산자가 식 앞에 표시된다는 점입니다. 다음 예제에서는 후위 증가 연산자를 보여 줍니다.
i++;
후위 증가 연산자(++)를 적용하면 피연산자 값이 적절한 형식의 단위로 한 단위씩 증가하게 됩니다. 마찬가지로 후위 감소 연산자(––)를 적용하면 피연산자의 값은 적절한 형식의 단위로 한 단위씩 감소하게 됩니다.
주의해야 할 점은 후위 증가 또는 감소 식은 각 연산자를 적용하기 전에 식의 값으로 계산된다는 것입니다. 증가 또는 감소 연산은 피연산자가 계산된 후에 진행됩니다. 이 문제는 후위 증가나 감소 연산이 더 큰 수식의 컨텍스트에서 진행할 경우에만 발생합니다.
후위 연산자가 함수 인수에 적용될 때 해당 인수의 값은 함수에 전달된 후에만 증가하거나 감소됩니다. 자세한 내용은 C++ 표준의 1.9.17 단원을 참조하십시오.
후위 증가 연산자를 long 형식 개체의 배열 포인터에 적용하면 포인터의 내부 표현에 4가 실제로 추가됩니다. 이 동작은 이전에 n번째 배열 요소를 참조한 포인터가 (n+1)번째 요소를 참조하도록 합니다.
후위 증가 및 감소 연산자의 피연산자는 const 형식이 아닌 산술 또는 포인터 형식의 변경 가능한 l-value여야 합니다. 결과의 형식은 후위 식 형식과 동일하지만 l-value가 될 수는 없습니다.
또한 후위 증가 연산자의 피연산자의 형식은 bool이 될 수도 있는데, 이 경우 피연산자는 true로 계산 설정됩니다. 후위 감소 연산자의 피연산자의 형식은 bool이 될 수 없습니다.
다음 코드에서는 후위 증가 연산자에 대해 설명합니다.
// expre_Postfix_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
int i = 10;
cout << i++ << endl;
cout << i << endl;
}
후위 증가 및 감소 연산은 열거형 형식에서 지원되지 않습니다.
enum Compass { North, South, East, West );
Compass myCompass;
for( myCompass = North; myCompass != West; myCompass++ ) // Error