안녕하세요.
공돌이 준형입니다.
변수(variable)란 간단히 말해 데이터를 저장하는 임시 공간, 즉 메모리 공간입니다.
우리가 어떤 값(데이터)을 저장하기 위해 사용하는 공간이죠.
변수는 일단 기본적으로
정수형 변수와 실수형 변수로 나뉩니다.
정수형 변수에는 대표적으로 char, short, int, long 형 변수가 있습니다.
실수형 변수에는 float, double, long double 등이 있죠.
왜 이렇게 종류가 많냐면 각각 바이트 수가 다르고 바이트 수가 다르다는 것은 저장될 수 있는 데이터의 범위가 다르다는 것입니다.
정수형 변수부터 보면
1바이트 = 8비트이고 표현 범위는 -2^n ~ 2^n + 1입니다. (n은 비트수)
구분 | 크기 | 표현 범위 |
char | 1바이트 | -128 ~ 127 |
short | 2바이트 | -32,768 ~ 32,767 |
int | 4바이트 | -2,147,483,648 ~ 2,147,483,647 |
long | 4바이트 | -2,147,483,648 ~ 2,147,483,647 |
근데 여기서 char는 문자를 저장할 때도 사용됩니다.
이유는 ASCII코드에 있는데 아스키코드 표를 보면 0부터 127까지 문자가 저장되어있는데 char하나로 모두 이용할 수 있기 때문이죠. 만약 char 변수에다가 a를 저장해두었다면 a의 아스키 값이 char에 저장되는 원리죠. 이 부분에 대해서는 나중에 더 자세히 설명드리겠습니다.
그리고 이 중에서 정수를 저장할 때 가장 많이 사용하는 형태는 int형입니다. 이유는 요즘 대부분의 컴퓨터는 32비트 이상의 시스템이라 연산하는 기본 단위가 최소 32비트입니다. 그래서 32비트 = 4바이트 즉, 오히려 크기가 적은 char 나 short 보다도 int 형을 더 빠르게 처리합니다. 사실 이제 정수를 저장할 때 char 나 short는 쓸 일도 없죠.
이번에는 실수형 변수입니다.
구분 | 크기 | 표현 범위 |
float | 4바이트 | 1.7 x 10^-38 ~ 3.4 x 10^38 |
double | 8바이트 | 2.20 x 10^-308 ~ 1.79 x 10^308 |
long double | 8바이트 |
2.20 x 10^-308 ~ 1.79 x 10^308 |
실수형 변수는 정수형 변수에 비해 표현 범위는 훨씬 작지만 더 정확한 수를 표현할 수 있습니다.
이러한 기본적인 변수의 종류에 대해 알았으니 이제 변수를 사용하는 방법을 알아야겠죠?
변수를 생성할 때는
변수의 종류 + 변수의 이름으로 생성합니다.
예를 들어서
int형 변수인 a를 생성한다고 합시다.
int a;
이런 식으로 생성 int형 즉, 정수 -2,147,483,648 ~ 2,147,483,647 사이의 숫자를 저장할 수 있는 a라는 메모리 공간이 생성된 것입니다.
그리고 이렇게 생성된 변수에는 '='을 통해 데이터를 대입할 수 있는데요. (물론 이 표현은 수학에서의 등호와 다릅니다. 수학에서의 등호는 c언어에서 '=='으로 사용합니다.)
두 가지 방법이 있습니다.
생성과 동시에 대입을 할 수 있고, 생성을 해둔 후 나중에 대입을 할 수 있습니다.
먼저 첫 번째 경우인 동시에 하는 방법은
int a = 10;
이런 식으로 합니다.
그리고 생성을 해둔 후 나중에 대입하는 방법은
int a;
a = 100;
해당 변수 이름에 '='을 통해 값을 넣어줍니다.
또 변수는 한 번에 여러 개 생성이 가능할까요?
,를 이용하여 가능한데 앞에 변수의 종류는 한 번만 적고 두의 변수의 이름만 콤마를 이용해 나열해주면 됩니다.
int a,b,c,d,e;
이러면 한 번에 a, b, c, d, e 변수가 생성되었죠.
그리고 변수를 생성할 때 변수 이름과 관련된 주의사항이 몇 가지 있습니다.
1. 변수의 이름에는 특수기호, 공백이 들어갈 수 없습니다.
공백이 필요한 상황이라면 보통 _ <- 이와 같은 언더바를 사용해 공백을 표현합니다.
2. 변수의 이름에 가장 앞글자는 숫자가 될 수 없습니다.
num1 이런 식으로는 가능하지만 1num 이렇게 숫자가 앞에 있으면 오류가 납니다.
3. 변수의 이름에서 대소문자는 구분이 됩니다.
이게 무슨 소리냐 Name이라는 변수와 name이라는 변수는 다른 변수로 인식합니다!
4. C언어에서 사용되는 용어는 변수의 이름으로 설정이 안 됩니다.
간단한 예를 들어서 int가 있죠. C언어 기본 내장 표현입니다.
그런데 변수 이름도 int로 한다?
int int; 이런 식으로 생성하면 오류가 납니다.
5. 마지막으로 변수 이름은 가독성이 좋게 짓자!
혼자 프로그래밍을 할 때 변수가 점점 많아지다 보면 a, b, c, d... 이런 식으로 짓다가는 분명 혼동이 올 것입니다.
결과를 저장하는 변수는 result 합을 저장하는 변수는 sum 등.. 의미가 있는 이름으로 지어줍시다.
나중에 여러 명이서 다 같이 프로젝트를 할 때에도 혼자만 알아듣는 표현으로 지어두면 분명 차질이 생길 겁니다.
그리고 변수는 되도록이면 코드 상단에 모아둡시다.!
지금까지 기본 적인 변수에 대해 알아보았습니다.
도움이 많이 되셨나요? 더 궁금한 점이 있으시면 댓글 남겨주세요.!