"증감연산자"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
 
'증감연산자'란 [[피연산자]]를 1씩 증가시키거나 감소시킬 때 사용하는 연산자이며, 피연산자가 한 개인 [[단항 연산자]]이다. 증가 연산자와 감소 연산자로 나뉜다.<ref name="위키백과">위키백과, 〈[https://ko.wikipedia.org/wiki/%EC%A6%9D%EA%B0%90_%EC%97%B0%EC%82%B0%EC%9E%90#cite_note-sigplan-1 증감 연산자]〉, 《위키백과》, 2020-01-17</ref>
 
'증감연산자'란 [[피연산자]]를 1씩 증가시키거나 감소시킬 때 사용하는 연산자이며, 피연산자가 한 개인 [[단항 연산자]]이다. 증가 연산자와 감소 연산자로 나뉜다.<ref name="위키백과">위키백과, 〈[https://ko.wikipedia.org/wiki/%EC%A6%9D%EA%B0%90_%EC%97%B0%EC%82%B0%EC%9E%90#cite_note-sigplan-1 증감 연산자]〉, 《위키백과》, 2020-01-17</ref>
BASH
+
 
 +
==역사==
 +
이 개념은 1969년 경에 켄 톰프슨에 의해 B 프로그래밍 언어에 처음 도입되었다.<ref>Ritchie, Dennis M., 〈[http://www.bell-labs.com/usr/dmr/www/chist.html The Development of the C Language]〉, 《ACM SIGPLAN Notices》, 2003</ref>
 +
 
 +
 
 +
==연산자 위치==
 +
연산자가 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서와 결과가 다르다. <ref>TCPSCHOOL, 〈[http://tcpschool.com/c/c_operator_incAndDec 증감 연산자]〉, 《TCPSCHOOL》 </ref>
 +
 
 +
 
 +
===전위 증감 연산자===
 +
피연산자의 값을 증감시킨 후 연산을 수행한다.
 +
:{|class=wikitable width=700 style="background-color:#ffffee width:100%; margin:0 auto;"
 +
!align=center style="background-color:#ffeecc"|증감 연산자
 +
!align=center style="background-color:#ffeecc"|설명
 +
|-
 +
|align=center|++x
 +
|align=center|피연산자 x의 값을 1 증가 시킨 후 연산 수행
 +
|-
 +
|align=center|--x
 +
|align=center|피연산자 x의 값을 1 감소 시킨 후 연산  수행
 +
|}
 +
 
 +
 
 +
전위 증감 연산자의 동작원리<ref name="증감 연산자 원리">성장하는 호랑이 , 〈[https://babytiger.tistory.com/entry/%EC%A0%84%EC%9C%84-%ED%9B%84%EC%9C%84-%EC%A6%9D%EA%B0%90-%EC%97%B0%EC%82%B0%EC%9E%90-i-i-%EC%B0%A8%EC%9D%B4 전위 후위 증감 연산자, ++i, i++ 차이]〉, 《개인 블로그》, 2012-06-07</ref>
 +
1. x=x+1;
 +
2. return x;
 +
 
 +
 
 +
===후위 증감 연산자===
 +
연산을 수행한 후 피연산자의 값을 증감시킨다.
 +
:{|class=wikitable width=700 style="background-color:#ffffee width:100%; margin:0 auto;"
 +
!align=center style="background-color:#ffeecc"|증감 연산자
 +
!align=center style="background-color:#ffeecc"|설명
 +
|-
 +
|align=center|x++
 +
|align=center|연산 수행 후 피연산자 x의 값을 1 증가
 +
|-
 +
|align=center|x--
 +
|align=center|연산 수행 후 피연산자 x의 값을 1 감소
 +
|}
 +
 
 +
 
 +
후위 증감 연산자의 동작원리<ref name="증감 연산자 원리"></ref>
 +
1. const int temp = x;
 +
2. x=x+1;
 +
3. return temp;
 +
 
 +
 
 +
==증감 연산자 활용==
 +
===for문 활용===
 +
조건문 for문에서 증감 연산자를 다음과 같이 사용한다.
 +
for(i=0; i<10; ++i) //전위 증감 연산자
 +
for(i=0; i<10; i++) //후위 증감 연산자
 +
for문에서의 전위/후위 증감 연산자
 +
전위 증감 연산자는 변수 값을 1 증감하여 반환하지만, 후위 증감 연산자는 다른 변수에 현재 변수를 저장 후 1 증감 시킨 다음 이전에 저장된 값을 반환한다.
 +
컴파일러의 최적화를 통해 실행속도에는 차이가 거의 없을 수 있지만 연산자 [[오버로딩]]으로 인해 후위 증감 연산자는 성능이 더 떨어지게 되므로 전위 증감 연산자가 성능상 이득을 볼 수 있다.<ref name="증감 연산자 원리"></ref>
 +
 
 +
 
 +
{{각주}}
 +
 
 +
==참고 자료==
 +
*위키백과, 〈[https://ko.wikipedia.org/wiki/%EC%A6%9D%EA%B0%90_%EC%97%B0%EC%82%B0%EC%9E%90#cite_note-sigplan-1 증감 연산자]〉, 《위키백과》, 2020-01-17
 +
*Ritchie, Dennis M., 〈[http://www.bell-labs.com/usr/dmr/www/chist.html The Development of the C Language]〉, 《ACM SIGPLAN Notices》, 2003
 +
*TCPSCHOOL, 〈[http://tcpschool.com/c/c_operator_incAndDec 증감 연산자]〉, 《TCPSCHOOL》
 +
*성장하는 호랑이 , 〈[https://babytiger.tistory.com/entry/%EC%A0%84%EC%9C%84-%ED%9B%84%EC%9C%84-%EC%A6%9D%EA%B0%90-%EC%97%B0%EC%82%B0%EC%9E%90-i-i-%EC%B0%A8%EC%9D%B4 전위 후위 증감 연산자, ++i, i++ 차이]〉, 《개인 블로그》, 2012-06-07

2020년 8월 10일 (월) 16:03 판

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

역사

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


연산자 위치

연산자가 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서와 결과가 다르다. [3]


전위 증감 연산자

피연산자의 값을 증감시킨 후 연산을 수행한다.

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


전위 증감 연산자의 동작원리[4]

1. x=x+1;
2. return x;


후위 증감 연산자

연산을 수행한 후 피연산자의 값을 증감시킨다.

증감 연산자 설명
x++ 연산 수행 후 피연산자 x의 값을 1 증가
x-- 연산 수행 후 피연산자 x의 값을 1 감소


후위 증감 연산자의 동작원리[4]

1. const int temp = x;
2. x=x+1;
3. return temp;


증감 연산자 활용

for문 활용

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

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

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


각주

  1. 위키백과, 〈증감 연산자〉, 《위키백과》, 2020-01-17
  2. Ritchie, Dennis M., 〈The Development of the C Language〉, 《ACM SIGPLAN Notices》, 2003
  3. TCPSCHOOL, 〈증감 연산자〉, 《TCPSCHOOL》
  4. 4.0 4.1 4.2 성장하는 호랑이 , 〈전위 후위 증감 연산자, ++i, i++ 차이〉, 《개인 블로그》, 2012-06-07

참고 자료