후위(Postfix) 연산자의 내부 동작


i++의 경우

int temp = i;   // i를 임시 변수에 저장
i += 1;         // i에 1을 더하고
return temp;    // 더하기 전의 값인 임시 변수를 리턴

전위(Prefix) 연산자의 내부 동작


++i의 경우

i += 1;         // i에 1을 먼저 더하고
return i;       // 1이 더해진 i를 리턴

Postfix와 Prefix의 성능 차이


Postfix의 경우 임시 변수를 사용하기 때문에 추가적인 메모리를 사용하게 되는데, Prefix는 임시 변수 사용 없이 원본의 값을 변경시키고 리턴하기 때문에 더 효율적이다.

컴파일러는 이러한 차이를 최소화하기 위해 자체적으로 최적화를 수행한다.

for(int i = 0; i < n; i++)
{
    // 반복문 내용
}

예를 들어, 위 코드의 경우 컴파일러가 i++++i 으로 자동으로 최적화해 준다.

카테고리:

업데이트:

댓글남기기