① 변수는 값을 할당할 수 있는 공간이다.
㉠ 변수(Variable)는 집에 비유할 수 있다.
㉡ 변수에 할당되는 값(데이터)을 변수 안에 살고 있는 사람으로 비유할 수 있다.
ⓐ 변수의 이름은 '흥부네 집'이고, 값은 '흥부'이다.
㉢ 값을 할당된 변수에 다른 값을 할당할 수 있다.(단, 원래 있던 값은 없어진다.)
ⓐ 흥부가 이사가도 흥부네 집을 철거하지 않는 한 흥부네 집은 그대로 남아있다. 흥부 대신 놀부가 이사와 살아도 집 이름이 흥부네 집인 것은 변함없다.
㉣ 값의 형식은 다음과 같다.(당장 알아야 할 것은 기본/내장 형식이다.)
㉤ 값에는 크기가 존재하다.
ⓐ 놀부는 많은 재산을 소유하기 위해서 큰 집이 필요하다. 작은 집에는 다 보관할 수 없기 때문이다.
ⓑ 흥부의 재산은 적기 때문에 작은 집에도 보관할 수 있고, 큰 집에도 보관할 수 있다.
ⓒ 만약 작은 집에 놀부의 재산을 모두 넣으려 하면 오버 플로우(Overflow)나 언더 플로우(Underflow) 발생한다. 쉽게 말하면 값의 범위가 값을 할당하려는 변수의 범위보다 클 경우 발생한다.
ⓒ 기본 데이터 형식들의 크기는 다음과 같다. (다른 형식들의 크기는 기본 데이터 형식들의 크기로 구할 수 있다.)
Type | Keyword | Size(Byte) |
Typeless | void | 의미 없음 |
Character | char | 1 |
Wide Character | wchar_t | 2 |
Integer | int | 4 |
(Single) Floating Point | float | 4 |
Double Floating Point | double | 8 |
Boolean | bool | 1 |
굳이 알 필요는 없는 데이터 형식들을 포함한 데이트 형식의 크기는 다음과 같다.
KeyWord | Size(Byte) | Possible values |
bool | 1 | true or false |
unsinged char | 1 | 0 ~ 255 |
char(or signed char) | 1 | -127 ~ 127 or 0 ~ 255 |
wchar_t | 2 | 0 ~ 65535 |
short(or signed short) | 2 | -32768~32767 |
unsigned short | 2 | 0 ~ 65535 |
int(or signed int) | 4 | -2147483648~2147483647 |
unsinged int | 4 | 0~2^32 |
long(or long int or signed long) | 4 | -2^31~2^31 -1 |
unsinged long | 4 | 0~2^32 -1 |
float | 4 | -3.4e^-38 ~ 3.4e^38 |
long long | 8 | -1.7e^-308 ~ 1.7e^308 |
unsigned long long | 8 | |
double | 8 | |
long double | 8 |
㉥ 변수의 형식은 값의 형식을 포함해야 한다.
ⓐ 사람 집에 개가 살 수는 있지만, 일반적으로 개집에 사람이 살 수는 없다.
중복된 변수이름은 사용할 수 없다. |
언더스코어(_)를 제외한 특수문자는 사용할 수 없다 |
숫자로 시작하는 변수명은 사용할 수 없다 |
변수명 길이에 제한은 없다 |
키워드를 변수명으로 사용할 수 없다 |
변수의 이름은 바꿀 수 없다. |
② 상수(Constant)는 할당된 값을 변화시킬 수 없다.
㉠ 상수는 코드적으로 값을 변화시킬 수 없는 변수를 뜻한다.
③ 리터럴(Literal)은 변하지 않는 값 그 자체를 일컫는다.
㉠ 상수와 리터럴은 다른 개념이다.
㉠ 변하지 않는 데이터(boolean, char, double, long, int, etc...)를 리터럴(Literal)이라고 부른다.