c언어 독학 전역변수의 특징
■ c언어에서 변수는 지역과 전역 variable가 있는데 그 이름에서도 알 수 있듯이 프로그램 전체에서 접근할 수 있는 게 전역변수이고, 함수의 내부(일부 지역)에서만 접근할 수 있는 게 지역변수입니다. 지난 글에서 지역변수에 대해서 정리해봤고, 이번에는 전역변수의 개념을 예제를 통해서 확인해보겠습니다. 이 녀석의 특징은 프로그램이 실행함과 동시에 메모리에 할당돼서 존재하다가 프로그램이 종료될 때 소멸하며 프로그램 내부 어느 지역에서든 접근이 가능합니다. 그리고 값을 초기화하지 않으면 자동으로 "0"이 됩니다.
다음과 같은 간단한 예제를 보겠습니다.
▲ [int x]는 함수의 밖에 선언(전역)했고 [int y]는 함수 내부(지역)에 선언했습니다. 이 둘의 차이점을 확인하기 위해서 둘 다 초기화하지 않은 상태에서 값을 출력하고 있습니다. 이 프로그램을 실행하면 다음과 같은 에러 메시지가 출력되는데요.
▲ 먼저 x는 "0"이 출력되는 걸로 봐서.... 자동으로 "0"으로 초기화되는 걸 알 수 있구요. 에러 메시지 내용을 보면 y의 값이 초기화(initialized) 되지 않아서 사용할 수 없다고 나오네요. 이렇듯 지역변수는 선언하면 꼭 초기화를 한 뒤에 사용해야 하고, 전역변수는 그렇게 하지 않으면 자동으로 "0"이 되며 main() 함수 내부에서 int x의 값에 접근해서 값을 출력할 수 있다는 것도 확인할 수 있습니다.
그리고 함수 내부와 외부에 동일한 이름의 variable가 선언된다면 외부의 것은 무시되고 함수 내부에 있는 것만 사용하게 됩니다. 간단하게 코딩해서 확인해보고 마무리할게요.
▲ 동일한 이름의 x를 선언하고 printf()로 x의 값을 출력하고 있는데 내부에 있는 값이 출력됩니다. 이때 x=200이 없다면 x=100의 값이 출력됩니다.
이렇게 해서 c언어 전역변수의 기본적인 특징을 살펴봤습니다. 수고하셨어요.