안녕하세요. 이번에는 변수의 생존 기간에 대해서 알아봅시다.
???? 변수의 생존기간이라니.. 변수도 죽나요??
네. 죽습니다.
변수에는 지역이 있습니다. 그 지역이 사라져버리면 그곳에 있던 변수도 죽어버립니다.
그럼 지역이 대체 어디일까요?
바로 블록입니다.
if문이나 반복문을 할때 블록으로 문장을 묶어줬었죠?
그리고 기본으로 main함수를 선언할때도 블록이 한번 열렸습니다.
int a가 있는곳을 A지역이라고 하고 int b가 있는곳을 b지역이라고 하겠습니다.
{ }로 둘러쌓인곳이 하나의 지역입니다.
지역 B는 지역 A속에 포함되어있습니다. 즉 지역 A에 있는 변수는 지역 B에서도 쓸수 있습니다.
하지만 지역 B가 아닌곳에서는 지역 B에있는 변수를 사용하지 못합니다.
코드로 예를들어서 설명해드리겠습니다.
지역B에 있는 변수를 B에서 사용하는건 정상적으로 작동됩니다.
물론 지역B는 지역A안에 포함되어있기때문에 a도 사용 가능하죠.
하지만 지역B밖에서는 b를 사용하지 못합니다.
그럼 main밖에 변수를 선언하면 어디서든 사용 가능하겠네!
라고 생각하실지도 모릅니다. 물론 정말로 가능합니다. 그것을 전역변수라고 합니다.
그럼 지역변수를 왜쓸까요?
지역 B에서만 필요한 변수를 쓸데없이 전역변수로 했을경우 쓸대없이 메모리를 낭비하게됩니다.
필요한건 필요한부분에서만 사용할수있도록 최적화해주는것이죠.
'프로그래밍 > C 기초' 카테고리의 다른 글
[C언어 강좌] #15 - 다차원 배열 (0) | 2016.12.21 |
---|---|
[C언어 강좌] #14 - 배열 (0) | 2016.12.20 |
[C언어 강좌] #12 - switch문 (0) | 2016.12.18 |
[C언어 강좌] #11 - 반복문 for (0) | 2016.12.17 |
[C언어 강좌] #10 - 반복문 while (0) | 2016.12.16 |