궁금증
단항연산자 위치의 차이 ( i++와 ++i )
GGoris
2015. 3. 30. 16:47
반응형
단항연산자 위치의 차이 ( i++와 ++i )
단항연산자 ++, -- 의 위치가 갖는 의미.
쉽게 이해하기위해
i++의 경우는 '식을 계산한 뒤' 1증가
++i의 경우는 '1증가 후' 식을 계산
라고 설명하고, 설명듣고, 알고있습니다.
단항연산자가 아래처럼 단독으로 사용될 때는 컴파일러단에서 증가된 값 하나만을
처리하므로 차이 없습니다.
ex) i++; <-> ++i;
식에서 사용될 때,
ex) value = number + (i++);
위의 경우 i++ 가 먼저 계산되고, 'number +'와의 연산을 위해 i++ 이 수행되기 전의 값을 저장하게 됩니다..
따라서,
(후위) i++ 증가하기 전 값을 저장하기위한 메모리 공간이 필요하며.
(전위) ++i 증가한 후의 값만을 사용하기 때문에 메모리 공간 소모 없습니다.
작은 메모리지만 임베디드 시스템과 같은 저성능 하드웨어에서는 전위나 후위나 같은 결과를 뽑을수 있는 식이라면, 전위를 쓰는게 유리하게 됩니다.
참고 :
성장하는 호랑이 - 전위 후위 증감 연산자, ++i, i++ 차이
반응형