증감 연산자

위키백과, 우리 모두의 백과사전.

증감 연산자피연산자로부터 더하거나 빼는 등 단항 연산을 위한 연산자이다. 증가 연산자감소 연산자로 나누며, 이 연산자들은 명령형 프로그래밍 언어에 구현되어 공통적으로 있다. 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와 비슷한 언어들에서도 동작한다.

지원 언어[편집]

아래의 목록은 완전하지 않을 수 있으며, ++/-- 증감 연산자를 지원하는 주요 프로그래밍 언어 중 일부를 나열한다.

각주[편집]

  1. Ritchie, Dennis M. (March 1993). “The Development of the C Language”. 《ACM SIGPLAN Notices》 28 (3): 5. doi:10.1145/155360.155580. 
  2. “GNU Awk's User Guide”. Free Software Foundation. 
  3. “8.3. The Double-Parentheses Construct”. The Linux Documentation Project. 
  4. Ritchie, Brian W. Kernighan; Dennis M.; Ritchie, Dennis (1988). 《The C programming language》 2., [Nachdr.]판. Englewood Cliffs, N.J.: Prentice Hall. 18쪽. ISBN 0-13-110362-8. 
  5. “++ Operator (C# Reference)”. Microsoft Developer Network. 

같이 보기[편집]