증가 및 감소 연산자의 전위: + +,-

++ unary-expression
–– unary-expression

설명

전위 증가 연산자 (++)는 피연산자; 추가 증가 한 값이 식의 결과입니다.피연산자는 l-값의 유형이 잘못 여야 합니다 const.결과 피연산자와 동일한 형식의 l-값입니다.

전위 감소 연산자 (-) 전위 증가 연산자를 피연산자를 1 씩 감소 되 고 발생이 감소 값 제외 하 고 비슷합니다.

함수 인수에 전위 연산자를 적용 하면 인수 값이 함수에 전달 되기 전에 증가 하거나 감소 합니다 않을 수도 있습니다.1.9.17 C + + 표준에 대 한 자세한 내용은 섹션을 참조 하십시오.

전위 및 후 위 증가 및 감소 연산자는 피연산자에 영향을 줍니다.증가 또는 감소 하는 식의 계산에서 발생 하는 경우 주요 차이점이입니다.(자세한 내용은 후 위 증가 및 감소 연산자입니다.) 피연산자의 값에서 다른 식의 값 이므로 값 식 계산에 사용 되기 전에 접두어 양식에서 증가 또는 감소 수행 됩니다.피연산자의 값과 같은 식의 값을 수 있도록 값 식 계산에 사용 된 후 후 위 양식에서 증가 또는 감소 수행 됩니다.예를 들어, 다음 인쇄 프로그램 "++i = 6":

// expre_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main() {
   int i = 5;
   cout << "++i = " << ++i << endl;
}

정수 계열 또는 부동 형식의 피연산자는 정수 값 1 증가 하거나 감소입니다.결과의 형식은 피연산자 형식과 동일합니다.포인터 형식의 피연산자가 처리 하는 개체의 크기에서 증가 하거나 감소입니다.증가 다음 개체를 가리킵니다. 감소 하 고 있는 이전 개체 가리킵니다.

때문에 증가 및 감소 연산자가 부작용 식의 증가 또는 감소 연산자를 사용 하는 전처리기 매크로 바람직하지 않은 결과가 있을 수 있습니다.다음 예제를 고려해 보십시오.

// expre_Increment_and_Decrement_Operators2.cpp
#define max(a,b) ((a)<(b))?(b):(a)

int main()
{
   int i = 0, j = 0, k;
   k = max( ++i, j );
}

매크로 확장합니다.

k = ((++i)<(j))?(j):(++i);

경우 i 보다 크거나 같아야 합니다 j 또는 보다 작은 j 1에 의해 두 번 증가 될 것입니다.

[!참고]

C + + 인라인 함수는 여기에 설명 된 것과 같은 부작용을 제거 하기 때문에 대부분의 경우에서 매크로 보다 선호 됩니다 및 전체 형식 검사를 수행 하 여 언어를 허용 합니다.

참고 항목

참조

단항 연산자 식

C + + 연산자

연산자 우선 순위 및 결합성

개념

전위 증가 및 감소 연산자