변수는 위치에 따라 지역변수와 전역변수로 나뉜다.
지역변수 : 함수내에 정의가 된 변수(stack memory에 저장)
→ 그러므로 main()에 정의된 변수라도, 다른 내장함수내에서는 인식하지 못하는 변수가 된다
전역변수 : 함수밖에 정의가 된 변수(data memory에 저장)
그이외에도 정적변후, 외부변수등이 존재한다(추후 논의)
Note 함수내와 전역에서 이용하는 같은 변수명을 쓰는 상황일때, 별도 구문을 추가하지 않으면, 지역변수가 우선을 둔다*
메모리영역
Note #include <stdlib.h> 내에 printf, scanf()등의 내장함수가 포함되어 있다.*
Tip함수 이용과정에서의 자료구조
main()함수내의 A()라는 함수가 있고, 이 함수에는 또 다른 내장함수를 내포할 수 있다.
⇒ 자료구조로 볼때, stack으로 볼 수 있다 = 가장 아래의 내장함수부터 작동되서 움직이므로
⇒ 선입후출 방식의 일종 (반대로는 후입선출방식으로 Queue라고 한다)
→ 그래서 함수가 쓰는 메모리 영역을 stack 메모리 영역이라고 한다.
main() stack memory를 가장 먼저 잡고, 내장함수에 할당하고 맨 마지막에 먼저잡은 main stack memory를 없애서 끝나는 구조!
자료형 변수명[사이즈] = {}; 이 기본 구조이다.