끄적끄적

반응형

2. 자동변수(automatic variable) 


자동변수의 키워드는 auto 이며 이는 C언어에서 기본값으로 배정되어 있습니다. 

즉 기억 클래스를 지정하지 않으면 모두 자동변수로 간주하게 됩니다. 

자동 변수는 변수가 함수 내부에서 선언되면 지역 변수가 되고 외부에서 선언되면 전역 변수가 됩니다. 


 자동변수의 특징 

키워드: auto(생략가능) 

유효범위: 변수가 선언된 블록 내 

초기화: 초기화 하지 않으면 쓰레기 값을 갖게 됩니다. 

장점: 한정된 메모리 공간을 효율적으로 사용 가능 합니다.


 자동변수의 선언 형식 

(auto) 자료형 변수명;


8-1 실습예제 (auto 변수의 범위를 알아보는 프로그램) 


#include <stdio.h>


int main() 

auto

int i = 10; 

    auto

int j = 20; 

    printf("i = %3d j = %3d\n", i,j); 

    { 

        int j = 50; 

        printf("i = %3d j = %3d\n", i,j); 

        { 

     int i = 100; 

        printf("i = %3d j = %3d\n", i,j); 

        } 

    } 

        printf("i = %3d j = %3d\n", i,j);     

        return 0; 

}


i = 10 j = 20 

i = 10 j = 50 

i = 100 j = 50 

i = 10 j = 20

 

 

8-2 실습예제 (auto 변수에 초기값을 주지 않는 경우를 알아보는 프로그램) 


#include <stdio.h>


void main() 

auto

int i; 

    auto

int j = 20; 

    printf("i = %3d j = %3d\n", i,j); 

    { 

        int j = 50; 

        printf("i = %3d j = %3d\n", i,j); 

        { 

        int i = 100; 

        printf("i = %3d j = %3d\n", i,j); 

        } 

    } 

        printf("i = %3d j = %3d\n", i,j);     

}


i = -838993460 j = 20 

i = -838993460 j = 50 

i = 100 j = 50 

i = -838993460 j = 20


위 프로그램에서는 i를 초기화 하지 않았으므로 쓰레기 값을 가지고 출력하게 됩니다. 

위와 같이 auto 변수는 초기화를 하지 않으면 쓰레기 값을 가지게 됩니다.



반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]