반응형

static 변수 2

[정보처리기사] C언어 - STATIC변수

STATIC변수란 단 한번만 초기화 되고, 그 이후에는 전역변수처럼 프로그램이 종료될 때까지 메모리 공간에 존재하는 변수. 초기값이 지정이 안되면, 자동으로 0이 대입된다. int a; 로 선언하면 a에 임의로 이상한 값이 들어가있는데, static int a로 선언하면, 0이 자동으로 대입된다. 지역변수와 STATIC변수의 활용을 비교해보자 지역변수의 사용 void tes() { int a = 10; a++; printf("%d" a); } void main() { test(); test(); } a 10 11 한번 사용한 지역변수는 초기화 돼서 두 번째 test를 호출할 때에 a에 역시 10이 들어있어서 결과값으로 11, 11이 출력되게 된다. static 변수 사용 void test() { stat..

[정보처리기사] C언어 - 변수의 종류와 유효범위(지역변수, 전역변수, 정적변수, 동적변수)

변수의 종류(쉽게쉽게) 지역변수: 지역안에서만 사용 전역변수: 공동으로 쓰는 것 정적변수: 공동으로 쓰는 것 동적변수: 그때 그때 만들어서 사용 지역변수란? 함수/블록 안에서 선언하는 변수 함수/블록의 종료와 함께 메모리상에서 소멸 초기값이 없으면 쓰레기 값이 들어감 스택 영역에 저장됨 ex. void main(){ if ( 1 ) { // 1은 참이니까 블록 안으로 들어감 int num1 = 10; // num1이라는 공간에 10의 값을 할당 printf("%d, num1); // 10 출력됨 } // 블록 끝남 printf("%d", num1); // 블록 끝났으니까 메모리상에서 소멸됨 } 전역변수란? 함수 블록 밖에서 선언하며, 전체 함수에 영향을 미친다. 프로그램이 종료될 때 메모리상에서 소멸 초..

반응형