C++ | 03.03 증가/ 감소 연산자(Increment/ Decrement) 주의사항
<목차>
1. 증가/ 감소 연산자(Increment/ Decrement)
2. 주의사항
증가/ 감소 연산자(Increment/ Decrement)
단항 연산자의 한 종류로, Prefix와 Postfix를 가지는 특징이 있습니다.
heroine-day.tistory.com/17에서 단항 연산자의 Prefix와 Postfix를 가지는 특징을 볼 수 있습니다! (•͈⌔•͈⑅)
#include <iostream>
using namespace std;
int main()
{
int x =6, y =6;
cout << x << " " << y << endl; //output: 6 6
cout << ++x << " " << --y << endl; //output: 7 5
cout << x << " " << y << endl; //output: 7 5
cout << x++ << " " << y-- << endl; //output: 7 5
cout << x << " " << y << endl; //output: 8 4
return 0;
}
- ++x와 같이 피연산자 앞에 연산자가 붙는 Prefix인 경우, 예를 들어, x에는 1이 더해진 후, cout stream으로 전송됩니다.
- x++과 같이 피연산자 뒤에 연산자가 붙는 Postfix인 경우, 예를 들어, x 값이 먼저 cout stream으로 전송된 후, 1이 더해집니다.
- 참고로 증/감 연산자는 피연산자와 붙여 써야합니다!
주의사항
1. 같은 인자를 사용하면 컴파일러 오류가 발생할 수 있다.
#include <iostream>
using namespace std;
int add( int a, int b)
{
return a+b;
}
int main()
{
int x = 1;
int y = 2;
int v = add(x, ++x);
int s = add(x, ++y);
cout << v << endl;
cout << s << endl;
return 0;
}
- int v = add(x, ++x);는 비주얼 스튜디오에서 4라는 값이 나오고, 컴파일러에 따라 이와 같은 오류가 발생할 수 있습니다.
- x라는 같은 인자를 사용하여 서로 영향을 주기 때문에, x가 2라는 값으로 파라미터에 전달될 수 있습니다.
- 그러므로 같은 인자일 경우에는 증감 연산자를 사용하지 말아야 합니다.
- int s = add(x, ++y);같이 서로 다른 인자는 영향을 주지 않으므로 사용해도 무방합니다.
- 하지만, 인자 두개가 모두 증감 연산자라면 오류가 발생할 수 있으니, 이를 피해야 합니다.
2. 증감 연산자를 사용한 변수를 같은 변수에 대입하는 것을 피하자
#include <iostream>
using namespace std;
int main()
{
int w = 2;
//w = ++w; 이렇게 짜는 것보다 그냥 아래처럼 하는게 더 낫다
++w;
cout << w << endl;
return 0;
}
- ++w은 w = w + 1을 줄여 쓴 것으로, w = ++w와 같이 사용한 것은 단항 연산자의 제대로 사용하지 못한 것이고, 가독성이 떨어질 수 있습니다.
- ++w을 사용해서 짧고 간결하게 표현하는 것이 좋습니다.
* 해당 글은 홍정모님의 따라 배우는 C++을 공부한 토대로 작성되었습니다.