본문 바로가기
배워보자!!/c언어

[c언어] c언어 지역변수, 전역변수란?

by norinda 2015. 4. 13.
728x90

c언어 변수에 대해 알아보겠습니다.

지역변수, 전역변수 외에도 static변수와 register변수도 있습니다.


1.지역변수 [Local Variable]

- 간단히 함수내에 선언된 변수라 보시면 됩니다.

지역변수는 함수가 호출될 대 메모리상에 존재했다가, 함수가 종료되면 메모리상에서 삭제됩니다.

한번만 실행되고 삭제될 수도, 해당 함수가 호출될 때마다 존재할 수도 있습니다.

지역변수는 다른 함수내(fn함수) 라면 변수명이 같아도 상관 없습니다. 

아래 코드와 같은 차이입니다.


#include <stdio.h>

int myVar;    //<------전역변수

int a;

int main()

{

int a = 1;    //<------지역변수

return 0;

}

int fn()

{

int a = 1;

return 0;

}


2.전역변수[Global Variable]

-이름 그대로 프로그램 어디에서나 접근이 가능한 변수입니다.

전역변수는 프로그램이 시작과 동시에 메모리상에 저장되며 프로그램이 종료될 때까지 계속 존재하게 됩니다.


아래와 같이 main함수랑 fn함수내에서 전역변수인 myVar에 접근이 가능합니다.

#include <stdio.h>

int myVar = 99;    //<------전역변수

int main()

{

printf("여기서 접근 %d" , myVar);

int a = 1;    //<------지역변수

return 0;

}

int fn()

{

printf("여기에서도 접근%d" , myVar);


return 0;

}




반응형

댓글