ISSAC.Min

[C++ Basic] 연산자(Operator) / 증감 연산자(Increment/Decrement Operator) 본문

Programming Language/C++ Basic

[C++ Basic] 연산자(Operator) / 증감 연산자(Increment/Decrement Operator)

ISSAC.M 2019. 4. 3. 22:49
반응형

 1. 증감 연산자


프로그래밍을 하면서 어떤 변수를 +1이나 -1을 취하는 것은 흔히 있는 연산과정이므로 C++에서는 증감 연산자(Increment/Decrement Operator)라는 것을 지원한다. 증감 연산자는 간단하게 두가지가 존재한다. 

++ / --

증감 연산자의 역활은 변수를 +1 또는 -1의 연산을 취하여 (변수 +- 1)로 반환하는 연산자이다. 실제 코드를 아래서 살펴보면


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main(){
    int i = 0;
    cout << i << endl;          // i = 0
    i++;                        // i = 0 + 1
    cout << i << endl;          // i = 1
    i--;                        // i = 1 - 1
    cout << i << endl;          // i = 0
    return 0;
}
cs


증감연산자는 위에서 볼 수 있듯이 i++, i--, ++i, --i 등으로 사용 할 수 있다. 위와 같이 i++, i--를 후위 증감 연산자(Postfix Increment/Decrement Operator)라고 부르고 ++i, --i를 전위 증감 연산자(Pretfix Increment/Decrement Operator)라고 부르며 역활은 서로 다르다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main(){
    // 후위 증감 연산자(Postfix Increment/Decrement Operator)
    int i = 5;
    int k1 = i++;
    cout << k1 << " " << i << endl;          // 5 6
 
    // 전위 증감 연산자(Prefix Increment/Decrement Operator)
    int j = 5;
    int k2 = ++j;
    cout << k2 << " " << j << endl;          // 6 6
 
    return 0;
}
cs


즉 전위 증감자는 연산을 먼저 진행을 하고 변수를 할당한다. 그리고 후위 증감자는 컴파일러가 (원본 변수)를 나두고 (임시 변수)를 하나 만들어놓고 (원본 변수)를 연산하고 (임시 변수)를 할당한다.


그러므로 위에서 후위 증감자에서 k1 값이 6이 아니라 5가 된다.


쉽게 말해서 앞에서 연산하는가 뒤에서 연산하는가로 전위, 후위 증감 연산자가 구별된다.


 2. 실습




반응형