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 변수는 초기화를 하지 않으면 쓰레기 값을 가지게 됩니다.
[프로그래밍] 4. 정적 변수(Static variable) (0) | 2016.10.05 |
---|---|
[프로그래밍] 3. 레지스터변수(Resister variable) (0) | 2016.10.02 |
[프로그래밍] 1. 기억 클래스의 정의 (0) | 2016.09.30 |
[프로그래밍] 재귀함수 사용 예제 (0) | 2016.09.28 |
OSI 7 Layer (Open System Interconnection) (0) | 2016.07.30 |