증감 연산자(increment and decrement operator)
- 피연산자가 1개뿐이다.(단항 연산자)
- 피연산자를 1씩 증가 혹은 감소시킨다.
● ++
● --
한단계 증가/감소한다 라는 의미로 기억해두는 것이 좋다!
"한단계"라는 의미가 모두에게 같은 의미가 아니기 때문이다.
정수나 실수(기본 숫자 타입) 에서는 1씩 증가 혹은 감소를 의미하겠지만,
포인터에서는 그런 의미가 아니기 때문이다.
int data = 0;
++data; //전위(전치)
data++; //후위(후치)
++data는 전위 증가 연산자로 연산을 진행한 것이고, data++은 후위 증가 연산자로 연산을 진행한 것이다.
● 후위 연산자 : 모든 연산자의 순서를 통틀어서 가장 나중에 수행된다. (대입 연산자 보다도 늦는다)
int a = 10;
data = a++;
후위 연산자는 대입 연산자보다도 늦게 실행되기 때문에 "넣고 증가한다"
따라서 data는 10을 결과값으로 갖는다.
● 전위 연산자 : 대입 연산자보다 먼저 실행된다.
int = 10;
data = ++a;
전위 연산자는 대입 연산자보다 먼저 실행되기 때문에 "증가하고 넣는다"
따라서 data는 11을 결과값으로 갖는다.
※ 다른 연산자와 섞여있을 때 증감 연산자가 앞에 있는지, 뒤에 있는지에 따라 다른 값이 나올 수 있다!
※ 반대로, 다른 연산자와 섞여 있지 않아 전위, 후위를 딱히 따지지 않아도 되는 상황에서는 "전위 연산자"를 쓰는 것이 더 좋다. 후위 연산자를 사용하면 효율이 좋지 않은 함수를 호출할 가능성이 있기 때문이다.
'C++' 카테고리의 다른 글
[C++] 조건문 (0) | 2023.01.06 |
---|---|
7. 논리 연산자 (0) | 2023.01.06 |
5. 산술 연산자 (1) | 2023.01.04 |
4. 실수형 자료형 (0) | 2023.01.04 |
3. 정수형 자료형 (2) | 2023.01.04 |