증감 연산자는 피연산자로부터 더하거나 빼는 등 단항 연산을 위한 연산자이다. 증가 연산자와 감소 연산자로 나누며, 이 연산자들은 명령형 프로그래밍 언어에 구현되어 공통적으로 있다. C와 같은 언어들은 각 연산자마다 의미를 달리하는 전치와 후치 연산 기능이 있다.
B (C 및 파생판 포함)에서 문법적으로 파생된 언어들의 경우 증가 연산자는 ++
로, 감소 연산자는 --
로 나타낸다.
역사
이 개념은 1969년 경에 켄 톰프슨에 의해 B 프로그래밍 언어에 처음 도입되었다.[1]
예
다음의 C 코드 부분은 전치 및 후치 증가 및 감소 연산자 간의 차이를 나타낸다:
int x;
int y;
// 증가 연산자
x = 1;
y = ++x; // 이 경우 x는 2이고, y도 2이다. (전치)
y = x++; // 이 경우 x는 3이지만 y는 그대로 2이다. (후치)
// 감소 연산자
x = 3;
y = x--; // 이 경우 x는 2이고 y는 3이다. (후치)
y = --x; // 이 경우 x는 1이고 y도 1이다. (전치)
아래는 후치 증가 연산자를 배열에 함께 사용한 예이다:
// 배열 요소를 합한다
float sum_elements(float arr[], int n) {
float sum = 0.0;
int i = 0;
while (i < n)
sum += arr[i++]; // i의 후치 증가
return sum;
}
상기와 비슷하게, 아래는 후치 증가 연산자를 포인터에 사용한 예이다:
// 하나의 배열에서 다른 배열로 복사
void copy_array(float *src, float *dst, int n) {
while (n-- > 0) // n부터 0까지 돌면서 카운트
*dst++ = *src++; // 요소 *(src)를 *(dst)로 복사하여
// 포인터 둘 다 증가
}
이 예는 C++, 자바, C#와 같은 기타 C와 비슷한 언어들에서도 동작한다.
지원 언어
아래의 목록은 완전하지 않을 수 있으며, ++
/--
증감 연산자를 지원하는 주요 프로그래밍 언어 중 일부를 나열한다.
각주
같이 보기
- 증가된 할당(Augmented assignment):
+=
, -=
연산자