검수요청.png검수요청.png

증감연산자

위키원
이동: 둘러보기, 검색

증감연산자피연산자를 1씩 증가시키거나 감소시킬 때 사용하는 연산자이며, 피연산자가 1개인 단항연산자이다. 증가 연산자와 감소 연산자로 나뉜다.[1]

역사[편집]

이 개념은 1969년 경에 켄 톰프슨에 의해 B 프로그래밍 언어에 처음 도입되었다.[2]

연산자 위치[편집]

연산자가 피연산자의 앞이나 뒤에 올 수 있지만 어느 쪽에 위치하는가에 따라 연산의 순서와 결과가 다르다. [3]

전위 증감 연산자[편집]

증감연산자를 변수 앞에 사용한 것을 전위연산자라고 하며 피연산자의 값을 증감시킨 후 연산을 수행한다. 전위 증감 연산자의 동작 원리는 증감연산자가 수행되어 변수의 값이 1 증감된 후 변수의 바뀐 값이 다른 변수에 할당된다.[4] 전위 증감 연산자의 동작원리는 다음과 같다.[5]

1. x=x+1;
2. return x;
증감 연산자 설명
++x 피연산자 x의 값을 1 증가 시킨 후 연산 수행
--x 피연산자 x의 값을 1 감소 시킨 후 연산 수행

후위 증감 연산자[편집]

증감연산자를 변수 뒤에 사용한 것을 후위연산자라고 하며 연산을 수행한 후에 피연산자의 값을 1 증감시킨다. 후위 증감 연산자의 동작 원리는 현재 변수의 값이 다른 변수에 할당된 후 증감연산자가 수행되어 변수의 값이 1 증감된다.[4] 후위 증감 연산자의 동작원리는 다음과 같다.[5]

1. const int temp = x;
2. x=x+1;
3. return temp;
증감 연산자 설명
x++ 연산 수행 후 피연산자 x의 값을 1 증가
x-- 연산 수행 후 피연산자 x의 값을 1 감소

활용[편집]

for문 활용[편집]

조건문 for문에서 증감연산자를 다음과 같이 사용한다.

for(i=0; i<10; ++i) //전위 증감 연산자
for(i=0; i<10; i++) //후위 증감 연산자

전위 증감 연산자는 변수 값을 1 증감하여 반환하지만, 후위 증감 연산자는 다른 변수에 현재 변수를 저장 후 1 증감 시킨 다음 이전에 저장된 값을 반환한다. 컴파일러의 최적화를 통해 실행속도에는 차이가 거의 없을 수 있지만 연산자 오버로딩으로 인해 후위 증감연산자는 성능이 더 떨어지게 되므로 전위 증감 연산자가 성능상 이득을 볼 수 있다.[5]

예제[3][편집]

예제 연산 순서
int x = 20;
int y = x-- + 5 + --x;
System.out.println("x의 값은 %d, y의 값은 %d\n",x,y);

>>>x의 값은 18, y의 값은 43
  1. 후위 감소 연산자이므로 덧셈이 먼저 수행된다.(x=20 / y= 20 + 5 + --x)
  2. 후위 감소 연산자에 의해 x의 값이 감소된다.(x=19)
  3. 전위 감소 연산자에 의해 x의 값이 감소된다.(x=18)
  4. 덧셈 연산이 수행된다.(x=18 / y = 25 + 18)
  5. y에 결과값의 대입 연산이 수행된다.(y = 43)

각주[편집]

  1. 이동 위키백과, 〈증감 연산자〉, 《위키백과》, 2020-01-17
  2. 이동 Ritchie, Dennis M., 〈The Development of the C Language〉, 《ACM SIGPLAN Notices》, 2003
  3. 이동: 3.0 3.1 TCPSCHOOL, 〈증감 연산자〉, 《TCPSCHOOL》
  4. 이동: 4.0 4.1 코딩도장, 〈증감 연산자의 위치에 따른 차이점 알아보기〉, 《코딩도장》
  5. 이동: 5.0 5.1 5.2 성장하는 호랑이, 〈전위 후위 증감 연산자, ++i, i++ 차이〉, 《개인 블로그》, 2012-06-07

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 증감연산자 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.