변수(variable)

변수는 한마디로 데이터를 저장하는 메모리 공간이다. 데이터가 변수에 의하여 메모리에 저장되면 필요한 경우에 꺼내어 사용 가능하다. 즉 변수를 하나 생성하면 그 변수를 이용하여 데이터의 저장 , 참조, 변경,연산 기타 등등을 할 수 있다. 그렇다면 이러한 메모리 공간을 어떻게 확보하는가 ? 변수 선언을 하면 메모리에 저장 공간이 생성된다.

변수 선언

선언 방법

변수 선언 방법은 아주 simple하다. 변수의 이름과 자료형을 쓰면 된다. 아래 코드를 보자.

1. int main(void){
2.      int num ;
3. }

2행에서 변수를 선언하고 있다. 변수 이름은 num , 변수의 자료형은 int 이다.
int 에 의해서 정수의 저장이 가능한 메모리 공간이 할당되고 그 공간의 이름은 num이다. 이렇게 변수를 선언 후부터는 변수의 이름을 이용하여 데이터(값)을 저장 , 참조 , 변경 등을 할 수 있다. 변수의 선언과 사용에 관한 아래 코드를 보자.

1.int main(void){
2.    int num ;
3.    num = 10 ;
4.    printf( " %d " , num);
5. }

2행에서 변수 num을 선언 했다. 3행에서 변수 num 에 10을 ‘대입연산자’을 사용하여 저장한다. 4행에서 변수 num을 참조하여 그 안에 저장된 값을 출력하고 있다.따라서 위 코드를 실행하면 변수 num에 저장된 값 10이 출력 된다.

선언과 초기화

초기화란 선언된 변수에 처음 값이 저장되는 것을 말한다. 그리고 초기화 이후에 처음 저장된 값을 변경하는 것은 ‘대입’한다고 표현한다.

1 int main(void){
2    int num ;
3   num = 12 ;
4     num = 24 ;
5 }

2행: 변수 num 을 선언한다.
3행: 변수 num 을 12로 초기화 한다.
4행: 변수 num 에 24를 대입한다.

이제 까지 알아 본 변수 선언의 일반적인 방법 이외에 변수 선언과 동시에 초기화 하는 방법도 있다.
int num = 10 ;
위의 코드를 실행하면 변수에 메모리 공간이 할당됨과 동시에 10으로 초기화 된다.
자료형이 동일한 두 개 이상의 변수를 동시에 선언 할 수 있다.
int num1 , num2 ;
또한 자료형이 동일한 두 개의 변수를 동시에 선언 및 초기화하는 것도 가능하다.
int num1=10 , num2=30 ;

쓰레기 값과 초기화

변수를 처음 선언하면 메모리 저장 공간이 할당된다. 이 할당된 저장 공간에는 별 의미 없는 값이 들어 있는데 이 값을 쓰레기 값이라고 한다. 이 쓰레기를 없애는 방법은 간단하다. 초기화를 하면 없어진다. 아래 코드를 보자.

1. int main(void){
2. int a;
3. int b = 10 ;
4. int c ; // 변수c는 초기화를 안 함
5. a = 20 ;
6.
7. printf(“a: %d\n”, a) ;
8. printf(“b: %d\n”, b) ;
9. printf(“c: %d\n” , c) ;
10.
11. return 0 ;
12. }

위 코드의 결과는 a는 20 , b는 10 ,c는 -85893460과 같은 이상한 값이 나온다. 2행의 변수a는 쓰레기 값이 5행의 초기화에 의해 삭제된다. 그러나 , 4행의 변수 c는 초기화를 하지 않기 때문에 결국 쓰레기 값이 출력 된다.

선언 위치

변수 선언의 위치는 블록 시작 부분에 필요한 변수를 모두 선언하는 것이 좋다. 블록의 중간 부분에서 선언한 변수는 그 이후에서만 쓸 수 있기 때문이다.

명명 규칙

  • 변수 이름은 알파벳 , 숫자 , 언더바(_)로 구성된다.
  • C언어는 대소문자를 구분한다.
  • 변수 이름은 숫자로 시작할 수 없다.
  • 이름 사이에 공백이 있어서는 안된다.