즉, 증가 및 감소 연산은 수정 가능하고 주소를 지정할 수 있는 무언가가 필요하다. 주소를 지정할 수 있는 항목을 기술 용어로 Lvalue라고 한다(부록 C의 정의 C-1 참조). 위의 코드 조각에서 오직 i만 Lvalue다. i와 대조적으로, j는 상수이며 3 + 5는 주소 지정이 불가능하다.
접두사 표기법과 접미사 표기법 모두 변수에 1을 더하거나 빼는 역할을 한다. 증가 표현식과 감소 표현식은 연산자가 접두사에 있을 때와 접미사에 있을 때 서로 다른 값을 갖는다. 연산자가 접두사에 있는 경우 수정된 값을 반환하고, 접미사에 있는 경우 기존 값을 반환한다. 예를 들어
int i = 3, j = 3; int k = ++i + 4; // i는 4, k는 8 int l = j++ + 4; // j는 4, l는 7
마지막에 i와 j의 값은 모두 4다. k의 값을 구할 때는 이미 증가된 i 값을 사용하는 반면, l의 값을 구할 때는 기존의 j 값을 사용한다.
일반적으로 수식에서 증가나 감소의 사용을 자제하고 j+1 등으로 대체하거나 증가/감소를 분리해서 수행하는 게 좋다. 수식이 사이드 이펙트(Side Effect)를 갖지 않아야 읽는 사람들이 이해하기 쉽고 컴파일러가 최적화하기도 쉽다. 그 이유는 곧 알게 될 것이다(1.3.12절 참조).
단항 뺄셈은 숫자의 값을 양수면 음수로, 음수면 양수로 바꾼다.
int i = 3; int j = -i; // j는 -3