Lesson 변수와 자료형: 값을 담는 그릇
변수란 무엇인가
변수(variable) 는 값을 담아 두는, 이름표가 붙은 상자입니다. 프로그램은
입력으로 받은 수, 중간 계산 결과, 최종 답 따위를 변수에 저장해 두었다가
필요할 때 꺼내 쓰고, 다시 새 값으로 갱신합니다. "무엇을 기억해야 하는가?"
라는 질문의 답이 곧 변수입니다.
int age = 17; // 정수
double pi = 3.14; // 실수
char grade = 'A'; // 문자 하나
age = 17 # 정수
pi = 3.14 # 실수
grade = 'A' # 파이썬엔 char 타입이 없어 길이 1 문자열이다
C++은 변수를 만들 때 자료형을 반드시 적어야 하고(정적 타입), 파이썬은
대입하는 값에 따라 자료형이 자동으로 정해집니다(동적 타입).
1. 자주 쓰는 정수 자료형 (C++)
| 자료형 | 크기 | 대략적인 범위 |
|---|---|---|
int |
4바이트 | 약 \(-2.1 \times 10^9 \sim 2.1 \times 10^9\) |
long long |
8바이트 | 약 \(-9.2 \times 10^{18} \sim 9.2 \times 10^{18}\) |
규칙은 하나입니다. 계산 결과가 약 21억(\(2\,147\,483\,647\))을 넘을 수 있으면
long long. 두 수의 곱, \(1\)부터 \(N\)까지의 합 같은 값은 금방 int 범위를
넘깁니다.
long long a = 1000000, b = 1000000;
cout << a * b << '\n'; // 10^12 — long long이라 안전
파이썬의 정수(int)는 크기 제한이 없으므로 오버플로를 걱정할 필요가 없습니다.
2. 실수 자료형
소수를 담을 땐 C++에서 double을 씁니다(float보다 정밀해서 거의 항상
double 권장).
double x = 1.0 / 3.0; // 0.333333...
실수는 정확히 저장되지 않을 수 있다는 점만 기억하세요. 0.1 + 0.2가
정확히 0.3이 아닌 것이 대표적입니다. 그래서 실수는 ==로 비교하지 않고
"차이가 아주 작으면 같다"로 판단합니다(다음 강에서 자세히).
3. 문자와 참/거짓
char c = 'Z'; // 작은따옴표 하나 — 문자 하나
bool flag = true; // 참(true)/거짓(false)
C++에서 char는 사실 작은 정수라, 'A'는 아스키 코드 \(65\)로도 다뤄집니다.
'A' + 1 == 'B' 같은 계산이 되는 이유입니다.
4. 변수 이름 규칙
- 알파벳·숫자·밑줄(
_)로 짓되 숫자로 시작하면 안 됩니다(2a✗,a2○). - 의미가 드러나는 이름을 쓰세요.
int sum, cnt, mx;처럼 짧고 뜻이 통하게. - C++ 예약어(
int,for,return…)는 변수 이름으로 못 씁니다.
정리
- 변수 = 이름표 붙은 값 상자. "기억해야 할 값"마다 하나씩.
- C++은 자료형을 직접 적고, 파이썬은 자동으로 정해진다.
- 정수는 기본
int, 커질 것 같으면long long. - 다음 강에서 이 자료형의 한계(오버플로) 를 깊게 다룹니다.