검색어 입력폼

[c, c++, static, 스태틱] 스태틱이란? static

등록일 2004.04.29 한글파일한글 (hwp) | 4페이지 | 가격 500원

소개글

스태틱(static)에 대한 자세한 설명입니다

목차

없음

본문내용

정적변수, 보통 일반적인 변수(dynamic)와는 다르게 메모리 안에 계속 저장되어있다. 일반적인 변수는 로컬 변수의 경우, 한 블럭이 끝나면 메모리에서 바로 사라져버리는데, (스택에 저장이 되어서 그렇다.) 정적변수의 경우는 블럭이 끝나더라도 메모리에 계속 남아있다.

예를 들면, 어떤 함수 안에서 일반적으로 변수를 선언한 후, 그 변수의 값을 바꾸면 함수가 실행이 끝난 후에는 그 변수의 값은 사라져버린다.

int a()
{
int a=1;
a+=1;
return a;
}

이렇게 하면 함수가 실행되는 동안 a의 값은 2로 바뀐 후 return값으로 2가 돌려진다. 함수가 실행되는 동안 계속하여 return값은 2가 된다.

하지만,

int a()
{
static int a=1;
a+=1;
return a;
}

라고 하면 a의 값은 static으로써 메모리 안에 계속 남아있다. a 메소드를 처음 실행시키면 return값은 2가 되는데, 이 값은 계속 메모리에 있기 때문에 a 메소드를 한번 더 실행하면 return값은 3이 된다. (처음에 static int a=1; 은 한번만 실행된다.) 함수를 호출 할 때마다 return값은 늘어나게 된다.
다운로드 맨위로