static 이란 정적변수로서 일반적인 변수와는 다르게 메모리 안에 계속 저장되어있습니다.
전역변수와 지역변수 앞에 static 키워드를 붙여서 선언할수있습니다.

전역변수에서 선언하면 프로그램이 실행될때 초기화되어 메모리에 알라가서
프로그램이 종료될때 사라집니다.

지역변수는 함수내에서 선언되면 메모리안에 저장되어 함수가 종료되어서도
사라지지않고 다시 함수를 호출시 그전의 값이 그대로 남아있어 사용할수있습니다.

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

위와 같이 하면 함수를 호출할때마다 a = 2 를 반환합니다.
하지만,

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

static int a=1; 는 한번만 실행되고 그후로부터 함수를 호출할때마다 1씩 증가된값을 반환합니다.
Posted by 빨강토끼
,