반응형
증감 연산자는 연산 대상의 앞에 연산자가 오는 전위 연산자와 대상의 뒤에 오는 후위 연산자가 있다.
// 전위 연산자
++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 |