wellcome_공부일기

C++ | 03.03 증가/ 감소 연산자(Increment/ Decrement) 주의사항 본문

프로그래밍/C++

C++ | 03.03 증가/ 감소 연산자(Increment/ Decrement) 주의사항

ma_heroine 2020. 5. 15. 23:38

<목차>

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++을 공부한 토대로 작성되었습니다.

 

Comments