자, 코드를 보고 결과를 예측해보세요. i1을 출력하면 무엇이 출력될까요? 당연히 -5를 출력하겠죠. i2는 i1 앞에 ‘+’가 붙었으니 -5가 아닌 5가 출력될까요?
실행결과
-5 -5 5
출력하면 5가 아니라 그대로 -5가 나옵니다. 즉, 변수 앞에 붙은 부호 연산자는 플러스 마이너스 부호를 바꿔주는 것이 아닙니다. ‘+’는 부호 비트를 그대로 유지시키고, ‘-’는 음수를 양수로 바꾸고 양수를 음수로 바꿔줍니다. ‘-’ 부호 비트를 붙여서 대입시킨 i3를 출력하면 양수 5가 출력됩니다.
다음으로 증감 연산자를 살펴보겠습니다. 증감 연산자에는 ‘++’, ‘--’가 있으며 피연산자 앞에 붙이거나, 뒤에 붙일 수 있습니다. 증감 연산자를 다른 식과 함께 사용하지 않는다면, 증감 연산자가 앞에 오나 뒤에 오나 결과가 같습니다. i3를 예로 들면 ++i3나 i3++는 같은 의미입니다. 바로 i3의 값을 1 증가시킵니다. --i3나 i3--도 마찬가지로 i3의 값을 1 감소시킵니다.
하지만 다른 식과 함께라면 결과가 다릅니다. 연산자가 피연산자 앞에 붙느냐, 뒤에 붙느냐에 따라 연산 결과가 달라집니다. 예제를 통해서 자세히 살펴보겠습니다.