C언어에서 변수형은 대단히 중요하다. 왜냐하면, 자동으로 처리를 못하기 때문에 항상 그 변수가 어떤 형태를 가지고 있는지 처음에 정해놓고, 그것에 맞춰서 사용해야만 하기 때문이다.

기본적으로 정수, 실수, 문자열 변수가 있다. 그리고 각각 그냥 쓰는 것과 긴(long) 형식이 있다. 또한, 부호를 붙인 것과 붙이지 않은 것이 있다 따라서, 다음과 같이 쓰면 된다

int
long int
unsigned int
unsigned long int
float
long float
unsigned float
unsigned long float
char

만약, long이 아니라는 것을 굳이 강조하고 싶다면 short int처럼 쓰면 된다. 이건 아무말 하지 않은 int와 똑같다.
여기서, 흥미로운건 double형이다. double은 long float이랑 똑같다. 그리고 여기에long double형이 있다는 것. 따라서 long double형은 정말 정말 큰 숫자를 표시할 수 있다. long double은 자칫 잘못 쓰면 너무 긴 숫자가 나오므로 조심해서 쓰도록 하자. 출력할때는 long이 붙으면 %lf, %ld 등으로 l을 붙여줘야 한다는 점을 까먹지 말자.

여기에, 굳이 뭔가 더 쓰자면 포인터 형이 있다. 포인터는 주소를 가르쳐 주는 변수형인데, 그건 다른 글에서 알아보도록 하겠다.

이러한 변수들을 만약 한두개가 아니라 여러개를 쓰고 싶다면 어떻게 해야 할까? 가령, 100개정도의 변수가 있고, 그것들을 번호를 매겨서 관리하려면? 여기에 쓰는게 바로 배열(array)이다. 배열은 다음과 같이 선언하면 된다.
int arrayname[100];
그럼 정수형을 가지며 arrayname이라는 이름을 가진 공간 100칸이 메모리에 예약된다. 우린 이 예약된 공간을 마음대로 갖고 놀 수가 있게 되는 것이다. 사용할 때는 arrayname[번호] 형식으로 사용한다
참고로, 번호는 0번부터 시작한다는 것을 절대 까먹지 말자. 정의할때는 arrayname[100]을 쓸 수 있지만, 어디서 실제로 사용할때 a=arrayname[100]처럼 쓰면 기어이 에러가 발생하고야 말 것이다.

참고로, 배열명은 포인터 이름과 같다는 것만 일러두고 끝낸다. 따라서 arrayname은 포인터 이름이 된다.
by snowall 2007. 1. 2. 23:36