2010. 6. 6. 01:08
변수라는 이름은 그 정의라고 할 수 있는 '변경 가능한 수'의 줄임말이다. 그러나 이름 그대로 이해를 하면 나중에 이해하기 어려운 부분이 생길 수 있도록 우리는 다르게 외워두도록 한다.
변수란?
Data를 저장하기 위하여 임의로 잡은 메모리 공간에 붙인 이름
이렇게 외워두어야 추후 배열이나 포인터를 배울때 이해하기 쉽다.
변수에는 여러가지 종류가 있다. char형, int형... 기본적으로는 C에서 제공하는 자료형이라는 녀석을 이용해 선언한다. 이 자료형이라는 녀석은 추후 다시 공부할 계획이므로 간단하게만 알아두도록 한다.
문자형 자료형 : char (char형은 정수형 자료형으로도 사용된다.)
정수형 자료형 : int
실수형 자료형 : float, double
이 3가지만 알아두어도 아직까지는 사용하는데 별 문제가 없을 것이다.
다음으로는 변수의 선언에 대하여 알아보자.
변수의 선언은 기본적으로 다음과 같은 형태를 따른다.
[자료형] 변수명;
그렇지만 변수의 선언은 같은 자료형을 동시에 선언을 할 수도 있고, 선언과 함께 초기화 할 수도 있다. 그 예시는 아래의 그림과 같다.
참고로 여기서 초기화란 지정된 메모리에 Data를 입력해주는 작업을 의미한다. 여기서 초기화를 해주지 않으면 변수는 쓰래기값(아무 의미 없는 값)을 가지고 있게 된다.
위의 그림을 보면
int형은 두줄로 나누어
char형은 한줄에 전부 선언한 것을 볼 수 있다.
b와 c의 경우 선언과 동시에 초기화 되었고
a와 d의 경우 아래에서 선언과는 별개로 초기화 시켜 주었다.
char형인 d의 경우 문자 'a'로 초기화 시켜 주었다.
위의 예제를 실행시키면 다음과 같다.
a, b, c, d, 모두가 숫자로 나오고
마지막줄에 d만 다시 문자로 출력되었다.
이는 문자형이라고 설명하였던 char형 변수에 문자를 저장할때 문자 고유의 코드 번호(C에서는 ASCII 코드를 사용함)로 저장하였다가 출력할때 코드와 비교하여 출력하기 때문이다..
위의 그림을 보면
int형은 두줄로 나누어
char형은 한줄에 전부 선언한 것을 볼 수 있다.
b와 c의 경우 선언과 동시에 초기화 되었고
a와 d의 경우 아래에서 선언과는 별개로 초기화 시켜 주었다.
char형인 d의 경우 문자 'a'로 초기화 시켜 주었다.
위의 예제를 실행시키면 다음과 같다.
a, b, c, d, 모두가 숫자로 나오고
마지막줄에 d만 다시 문자로 출력되었다.
이는 문자형이라고 설명하였던 char형 변수에 문자를 저장할때 문자 고유의 코드 번호(C에서는 ASCII 코드를 사용함)로 저장하였다가 출력할때 코드와 비교하여 출력하기 때문이다..
따라서 printf()에서 출력할때 %d를 사용하느냐. %c를 사용하느냐에 따라서 char형 변수가 숫자로 출력되느냐 문자로 출력되느냐가 결정되어진다. 이에 대한 내용은 추후 printf()와 scanf()장을 통하여 설명하도록 하겠다.
또한 변수에 저장되는 값은 변경 될 수 있다. 그 예시는 아래와 같다.
위의 예시에서 value값은 10으로 초기화 되어 있다가 20으로 변경되었다.
C언어는 순차적 언어(위에서부터 아래로 읽어내리는 순서대로 동작한다는 의미)이기 때문에 10으로 초기화된 6번줄에 의해서 8번째 줄의 printf에서 value의 값은 10이 되고, 10번째 줄에 의해 12번째 줄의 printf의 value값은 20이 되게 된다.
위의 소스 코드를 코딩하여 출력하면 다음과 같다.
2. 변수를 선언하는데 있어서 주의해야 할 점
변수를 선언하는데 있어 주의해야 할 사항들을 알아보도록 하자.
1) 함수 내에서 변수를 선언할 경우 가장 먼저 등장해야 한다.
- C언어에서는 변수의 선언이 함수의 가장 첫 부분에 와야만 한다.
즉 아래와 같은 경우는 원칙적으로 허용되지 않는다.
※ 이는 C언어에서만 해당되는 것으로 C++에서는 해당되지 않는다.
따라서 일부 C/C++컴파일러에서는 이와 관계없이 정상적으로 작동하는 경우도 있다.
다른 일부의 컴파일러에서는 소스코드의 확장자를 .c로 해놓았을때에만 해당되는 경우도 있다.
(앞으로 연습을 위해 코딩할때는 확장자를 꼭 c로 적용하도록 하자.)
2) 변수의 이름을 짓는 방법
- 변수의 이름은 알파벳, 숫자, 언더바(_)로 이루어진다.
- C언어는 대소문자를 구분하므로 VALUE 변수와 value 변수는 다른 변수로 구분된다.
- 변수의 이름은 숫자로 시작할 수 없고, 변수의 이름에 공백이 포함 될 수도 없다.
- 키워드를 변수의 이름에 사용할 수 없다.
여기서 키워드라는 것은 컴파일러가 이미 사용하고 있는 단어들이다. 예를 들면 여기서 자료형으로 사용하고 있는 int가 그 대표적인 예가 되겠다. 만약 int라는 변수의 이름이 허용된다면 컴퓨터는 int라는 녀석을 자료형 int로 보아야할지 변수이름 int로 보아야 할 수 없기 때문이다.
변수의 이름을 저장하는데는 위의 제약조건 말고는 특별히 제약하고 있지 않다. 하지만 대개는 프로그램의 가독성(소스코드를 보고 어떻게 돌아가는지 보는것)을 좋게 하기 위해서 변수의 이름은 그 용도나 쓰임에 맞는 이름을 사용하기 마련이다.
또한 언더바(_)로 시작되는 변수의 이름은 헤더파일(stdio.h와 같은 미리 함수등을 저장해놓은 파일)이나 시스템에서 많이 사용되므로 자제하도록 하자.
변수는 이정도만 일단 알아두고 넘어가도록 하자.
다음장에서는 연산자에 대해서 알아보도록 하겠다.
이번장을 처음 쓴게 2008년 12월 28일...
오늘이 2010년 6월 6일이다.
그 사이 개인적으로 피치 못할 사정이 있기는 했으나
간격의 텀이 너무 길었던 것 같다. 앞으로 좀 더 자주 업로드 하도록 노력하도록 하자.