프로그래밍 언어/C++
[C++] 산술연산자와 auto
새싹 개발자 뚜비
2022. 1. 13. 15:07
728x90
판다코딩 C++ 인강 공부 정리
#include <iostream>
using namespace std;
int main() {
// + - * / %
int a = 10;
int b = 3;
int c = a + b;
int d = a - b;
int e = a * b;
int f = a / b;
int g = a % b;
cout << "c : " << c << endl;
cout << "d : " << d << endl;
cout << "e : " << e << endl;
cout << "f : " << f << endl;
cout << "g : " << g << endl;
return 0;
}
산술연산자
+ : 두 개의 피연산자의 합을 계산한다.
- : 첫 번째 피연산자에서 두 번째 피연산자의 차를 계산한다.
* : 두 개의 피연산자의 곱을 계산한다.
/ : 첫 번째 피연산자에서 두 번째 피연산자를 나눈다.
% : 첫 번째 피연산자를 두 번째 피연산자로 나누어 나머지를 구한다.
부동 소수점(실수)에는 사용할 수 없다.
#include <iostream>
using namespace std;
int main() {
// + - * / %
int a = 10;
int b = 3;
int c = 5;
int mulyiple = a + b * c; // 25
cout << mulyiple;
return 0;
}
C++가 복잡한 산술 연산을 수행할 수 있을까? 있다.
int mulyiple = a + b * c;
이 경우 C++는 기본적인 수학의 우선순위를 따라간다. (곱하기 -> 더하기)
#include <iostream>
using namespace std;
int main() {
// + - * / %
int a = 10;
int b = 3;
int c = 5;
int mulyiple = a / b * c; //15
cout << mulyiple;
return 0;
}
int mulyiple = a / b * c;
이 경우에 C++은 내부적으로 정의한 결합 방향 규칙을 따른다.
나눗셈의 경우, 왼쪽에서부터 오른쪽으로의 결합 방향 규칙을 가지고 있으므로,
먼저 b/a를 수행하고 *c를 연산하게 된다.
#include <iostream>
using namespace std;
int main() {
// auto
auto n = 100; // n은 int
auto x = 1.5; // x는 float
auto y = 1.3e12L; // y는 long long
return 0;
}
auto는 C++만의 데이터형으로 초기화하는 값을 보고 변수형을 추론할 수 있다.
즉, 변수를 선언하고 값을 대입하는게 아닌 선언할 때 값을 대입하는 초기화의 방법을 이용할 때
auto를 사용하면 C++가 자동으로 데이터형을 결정한다.
auto를 자주 사용하는건 좋은 코딩습관은 아니다.
예기치 못한 오류를 야기할 수 있기 때문.
728x90