변수의 종류

변수는 위치에 따라 지역변수와 전역변수로 나뉜다.

  1. 지역변수 : 함수내에 정의가 된 변수(stack memory에 저장)

    → 그러므로 main()에 정의된 변수라도, 다른 내장함수내에서는 인식하지 못하는 변수가 된다

  2. 전역변수 : 함수밖에 정의가 된 변수(data memory에 저장)

그이외에도 정적변후, 외부변수등이 존재한다(추후 논의)

Note 함수내와 전역에서 이용하는 같은 변수명을 쓰는 상황일때, 별도 구문을 추가하지 않으면, 지역변수가 우선을 둔다*

메모리영역

  1. stack memory : 함수 호출시 생성, 종료후 사라짐
  2. data memory : 프로그램 호출시 생성, 종료후 사라짐
  3. Read memory : code가 저장된 영역
  4. Hip memory : pointer, 동적할당시 이용

함수

Note #include <stdlib.h> 내에 printf, scanf()등의 내장함수가 포함되어 있다.*

Tip함수 이용과정에서의 자료구조

main()함수내의 A()라는 함수가 있고, 이 함수에는 또 다른 내장함수를 내포할 수 있다.

⇒ 자료구조로 볼때, stack으로 볼 수 있다 = 가장 아래의 내장함수부터 작동되서 움직이므로

⇒ 선입후출 방식의 일종 (반대로는 후입선출방식으로 Queue라고 한다)

→ 그래서 함수가 쓰는 메모리 영역을 stack 메모리 영역이라고 한다.

main() stack memory를 가장 먼저 잡고, 내장함수에 할당하고 맨 마지막에 먼저잡은 main stack memory를 없애서 끝나는 구조!


배열

자료형 변수명[사이즈] = {}; 이 기본 구조이다.