본문 바로가기

C++

[C++] 증감 연산자 (Increment Decrement Operators)

반응형

증감 연산자는 연산 대상의 앞에 연산자가 오는 전위 연산자와 대상의 뒤에 오는 후위 연산자가 있다.

// 전위 연산자
++x;   // 'x + 1'과 같다.

// 후위 연산자
x++;   // 'x + 1'과 같다.

1. 전위 연산자

#include <iostream>

int main() {

	using namespace std;

	int x = 6, y = 6;

	cout << x << " " << y << endl;
	cout << ++x << " " << --y << endl;	// x에 '+1', y에 '-1'을 한 다음에 stream(<<)으로 보낸다.
	cout << x << " " << y << endl;

	return 0;
}

 

 

2. 후위 연산자

#include <iostream>

int main() {

	using namespace std;

	int x = 6, y = 6;

	cout << x << " " << y << endl;
	cout << x++ << " " << y-- << endl;	// x와 y를 stream(<<)으로 보낸 후에 'x + 1', 'y - 1'을 한다.
	cout << x << " " << y << endl;      // 따라서 다음 명령줄에서 x, y 값이 바뀐다.

	return 0;
}

 

 


※ 함수의 매개변수에 동일한 변수를 사용할 때 증감 연산자를 사용하면, 컴파일러에 따라 다른 값이 나타난다.

따라서 증감 연산자를 사용할 땐 동일한 변수를 매개변수에 입력하지 않는다.

 

#include <iostream>

int add(int a, int b) {
	return a + b;
}

int main() {

	using namespace std;

	int x = 1, y = 2;
	int v = add(x, ++x);	// 동일한 변수를 매개변수로 사용
    cout << v << '\n';      // 4 출력(error), 컴파일러에 따라 다르게 계산된다. 

    x = 1; y = 2; 
	v = add(x, ++y);        // 다른 변수를 매개변수로 사용
	cout << v << '\n';      // 4 출력

	return 0;
}

 

 

 

참고: Inflearn, 홍정모의 따라하며 배우는 C++, '3.3 증감 연산자 increment decrement operators'

반응형

'C++' 카테고리의 다른 글

[C++] 쉼표 연산자 (Comma Operator)  (0) 2022.03.14
[C++] 거듭제곱: pow()  (0) 2021.12.03
[C++] 2진수, 8진수, 16진수 표현하기  (0) 2021.11.29
[C++] casting: static_cast <자료형>(변수)  (0) 2021.11.17
[C++] 논리 연산자: &&, ||  (0) 2021.11.03