본문 바로가기

C/2.변수와연산자

변수(Variable) - 3. 변수의 선언과 초기화

#변수의 선언과 초기화


- 변수의 선언

변수란 값을 저장할 수 있는 메모리 공간의 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다.

변수라는 것을 만들면(=선언하면) 변수의 이름을 통해 값의 저장 및 참조가 가능하고, 값의 변경도 가능하다.


int nNum;     //nNum이라는 이름의 변수 선언


위 코드가 곧  변수를 선언한것이다.

int (정수형 값을 저장 가능한 메모리 공간 할당 ) nNum ( 그리고 그 공간의 이름)


- 변수의 초기화

변수를 선언하여 초기화하지 않는 다면 아무 의미 없는 값이 담겨진다. 이를 '쓰레기값'이라고 말한다.

반드시 초기화해야된다는 법칙은 없지만 가급적?이라면 초기화를 반드시 해주는 것이 좋다.

1
2
3
4
5
6
7
#include <stdio.h>
 
void main(){
    int nNum1, nNum2;
 
    printf("nNum1 = %d\n nNum2 = %d\n", nNum1, nNum2 );
}
cs


심지어는 초기화를 안해주었을때 담긴 쓰레기 값이 int(정수형)의 범위를 넘어 초과되는 경우도 있다.

위의 소스처럼 int 형 변수 두개를 동시에   , 연산자를 통해 선언해주는 것도 가능하다.


1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
void main(){
 
    int nNum;    //정수형int메모리 공간 할당, 그 공간의 이름은 nNum이라고 선언, 변수이다.
    nNum = 0;    //변수 nNum을 0으로 초기화.
    nNum = 10;    //변수 nNum을 10으로 대입.
 
    int nNum_1 = 10;    
    //정수형 int 메모리 공간 할당, 그 공간의 이름은 nNum_1이라고 선언, 변수이며 선언과 동시에 초기화
}
cs

만약 컴파일러가 지원하지 않는 다면 위의 소스는 컴파일 에러가 발생한다.

1999년에 발표된 C언어의 표준은 변수의 선언위치에 제한을 두고 있지 않지만 컴파일러의 종류에 따라 안되는 컴파일러도 있으니,

반드시 변수는 함수의 시작, 즉 중괄호의 앞부분에 선언하는것이 좋다.

위의 소스를 통해 5번째 라인은 선언, 2번째 라인은 초기화, 3번째 라인은 대입

그리고 9번째 라인은 선언과 동시 초기화하는 방법을 살펴보았다.