단순히 보면 바로 더한 값이 반환 되는 것( ++parameter; )과 더한 값이 추후에 반한 되는 차이 ( parameter++; ) 입니다.
전위처리자는 *this 즉, 자기 자신을 반환하여 속도 면에, 후위 처리자는 const 로 다시 값을 대입하여 반환하여 안정성에 무게가 있으니 참고 하시길 바랍니다.
void main()
{
int parameter = 0;
printf( " ++parameter : %d \n", ++parameter ); // ++parameter : 1
printf( " parameter++ : %d \n", parameter++ ); // parameter++ : 1
printf( " parameter : %d \n", parameter ); // parameter : 2 이후 값이 늘어남.
}
하지만 좀 더 깊숙히 생각해 결과 값 뿐만 아니라 반환 값 까지 생각 한다면,
결정적인 차이는 ++parameter는 int 값 반환이고 parameter++는 const int 값 반환 입니다.
즉, ++++parameter 이렇게 하면 이 녀석은 이상 없이 동작 하지만 ( 0 -> 2), parameter++++ 이렇게 하면 반환하는 것이 const라 다시 상수를 다시 ++할 수 없으니 오류를 뱉어 내죠.
전위처리자는 *this 즉, 자기 자신을 반환하여 속도 면에, 후위 처리자는 const 로 다시 값을 대입하여 반환하여 안정성에 무게가 있으니 참고 하시길 바랍니다.
출저 : Mode Effect C++ 내용 중 ...
'[ Programing ] > C++' 카테고리의 다른 글
Char* 버퍼에 여러 종류의 데이터 처리 (0) | 2010.01.31 |
---|---|
const, const int, int* const, const int* const n 설명 (0) | 2010.01.31 |
[ Casting의 종류 ] static_cast, dynamic_cast, const_cast, reinterpret_cast (0) | 2010.01.31 |
[디버그 창에 문자열 출력] TRACE(); (0) | 2010.01.31 |
[컴파일시 표현식 유무 판단] CASSERT(); (0) | 2010.01.31 |