C#에서는 값, 레퍼런스의 두 가지의 저장방법이 있다.

int x = 10 과 같이 내장된 데이터 형을 선언할 때 스택에 10라는 값이 들어가고 해당 스택에 x라는 이름이 붙는다


레퍼런스 저장은 오브젝트 저장에 사용된다. 클래스에서 오브젝트를 생성하면 해당 오브젝트는 참조 방식으로 저장된다

참조 유형은 힙이라는 공간에 저장되는데 스택에는 해당 힙의 주소가 저장되고 힙에는 실제 값이 저장된다

즉, 스택에 있는 주소가 힙의 값을 가르키고 있는 것이다.


스택은 정적 할당에 사용되고 메서드가 끝나면 사라진다.

힙은 동적 할당에 사용되며 오브젝트를 생성하면 자동으로 메모리에 할당된다. 또 GC라는 곳에서 자동으로 할당을 해제한다.


대충 이렇게 알고 있는데


1.굳이 정적, 동적을 나눠서 쓰는이유

2.클래스에 static을 붙이면 스택에 저장되는가?

3.3. 오브젝트의 값을 변경하면 (class.age = 23 ) 힙의 값만 변경되는가? 스택의 주소와 힙의 값이 같이 변경되는가?


위의 의문이 듬

일단 그렇게만 알고 넘어가면 나중에 이해 된다는데 진짜 그래?