C#에서는 값 형식과 참조 형식이 있음.
값 형식은 변수가 값을 담는 데이터 형식
참조 형식은 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식
이 둘은 메모리 영역중 각각 한 부분을 차지함.
값은 스택(Stack)
스택이란
FILO(First in Last Out)의 구조와
FIFO(First in First Out)의 구조를 가짐
모든 변수들은 스택에 쌓이게 되고 이 스택은 프로그램이 종료되는 시점,
혹은 스택으로 관리 되던 구역이 종료되는 시점에서 스택에 저장되어 있는 모든 변수는 제거가 됨.
참조는 힙(Heap)
동적 할당을 할때 할당되는 영역.
힙 영역에 집어넣고 필요할때마다 사용.
C++은 사용자가 직접 수거해줘야함.
C#은 가비지 컬렉터가 힙 영역에 들어가 있다가 더 이상 사용하지 않으면 쓰레기로 인식해 수거