일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- #define
- 학습 알고리즘
- 본즈앤올
- classification problem
- Machine Learning
- Andrew Ng
- regression problem
- coursera
- sizeof()
- compile time constants
- 프로그래밍
- CLion
- Runtime constants
- 이코테
- 형변환
- decimal
- 기계학습
- algorithm
- 코딩테스트
- 홍정모님
- C++
- standford University
- 연산자
- 코드블럭 오류
- 단항연산자
- const
- #endif
- 나동빈님
- Greedy
- 기계학습 기초
- Today
- Total
wellcome_공부일기
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++을 공부한 토대로 작성되었습니다.
'프로그래밍 > C++' 카테고리의 다른 글
C++ | 03.05 관계 연산자(Relational operator) (0) | 2020.05.17 |
---|---|
C++ | 03.04 sizeof, 쉼표 그리고 조건(부) 연산자 (0) | 2020.05.16 |
C++ | 03.02 산술 연산자(Arithmetic operator) (0) | 2020.05.14 |
C++ | 03.01 연산자 우선순위와 결합법칙(Operator precedence and associativity ) (0) | 2020.05.13 |
C++ | 02.11 Runtime vs Compile time constants (0) | 2020.05.12 |