변수

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은 포인터 이름이 된다.

코멘트

“변수”에 대한 4개 응답

  1. 
                  snowall
                  아바타

    각 언어마다 맘에 드는 특징이 몇개씩은 있어서, 그 특징들을 다 모아둔 언어를 만들고 싶긴 합니다. 가령, 포트란은 복소수를 언어수준에서 지원해 주죠.

  2. 
                 djinni
                 아바타

    파스칼 좋은 언어죠. 파스칼에서 가장 마음으 드는건

    대소문자를 구분하지 않고, 컴파일 속도가 매우매우매우매우매우 빠르다.

  3. 
                  snowall
                  아바타

    헉…배열을 재미있게 할 수 있네요…; 배열 인덱스로 문자도 쓸 수 있다니요…

  4. 
                 그네고치기
                 아바타

    파스칼 언어는 배열에 있어 사용자에게 상당한 편의를 제공합니다. 이를테면 이런 설정이 가능하지요.

    var

    arrayname:array[200..999]of integer;

    arrayname2:array[‘a’..’z’]of integer;

    arrayname3:array[1..2,1..77,99..100]of integer;

    (이거 마치 파스칼 홍보대사가 된 느낌? ;;; )

snowall 에 응답 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.