콘텐츠로 이동

전위 증가와 전위 감소 (Preincrement and Predecrement)

후위 의미론이 필요한 경우가 아니라면 증가·감소 연산자의 전위 형태(++i)를 사용하세요.

정의:

변수를 증가시키거나(++i 또는 i++) 감소시킬 때(--i 또는 i--) 그 표현식의 값을 사용하지 않는다면, 전위 증가(감소)를 쓸지 후위 증가(감소)를 쓸지 정해야 합니다.

장점:

후위 증가·감소 표현식은 값이 수정되기 전의 값으로 평가됩니다. 그래서 코드가 더 압축될 수는 있지만 읽기는 더 어려워집니다. 전위 형태는 대체로 더 읽기 좋고, 결코 덜 효율적이지 않으며, 연산 전의 값을 복사해 둘 필요가 없기 때문에 더 효율적일 수 있습니다.

단점:

C에서는 표현식의 값을 사용하지 않을 때조차 후위 증가를 쓰는 관습이 자리 잡았고, for 루프에서 특히 그렇습니다.

결정:

코드가 후위 증가·감소 표현식의 결과를 명시적으로 필요로 하는 경우가 아니라면 전위 증가·감소를 사용하세요.


옮긴이 풀이

핵심: 반환값이 필요 없으면 전위형(++i)

값을 증가/감소시키되 그 표현식의 결과를 쓰지 않는다면 전위형(++i, --i)을 쓰세요.

for (int i = 0; i < n; ++i) { ... }  // i++ 아님

왜?

후위형(i++)은 변경 전 값으로 평가되므로, 원래 값의 복사본을 만들어 둬야 합니다. 전위형은 그럴 필요가 없어 더 읽기 쉽고, 결코 더 느리지 않으며, 객체 타입에서는 더 빠를 수 있습니다. C의 for 루프 관습 때문에 i++를 습관적으로 쓰지만, 결과가 필요 없다면 ++i가 맞습니다.