728x90
값형식과 참조형식을 알기 전에 스택(Stack)과 힙(Heap)을 알고 가면 좋다.
2020/07/13 - [개발/C#] - Stack and Heap
스택과 힙에 대해 간략히 알아봤다면, 값형식과 참조형식에 대해 알아보자.
값 형식에 속하는 것들은
sbyte, byte, char, short, ushort, int, uint, long, ulong, float, double, decimal, bool 이 있다.
값 형식의 경우 값은 스택에 저장되고, 변수는 그 스택 메모리를 가리키는 식별자다.
힙 형식에 속하는 것들은 string, array, class, object 등이다(new 로 선언되는 것들도 포함).
참조 형식의 값은 힙에 저장되고, 변수는 그 힙 메모리를 가르키는 데이터 주소를 담는다.
잘 이해가 안 된다면, 이렇게 보자.
* 값 형식을 선언하면 값은 스택 메모리에 저장되고, 변수로 이 스택 메모리 위치를 찾아간다.
* 참조 형식을 선언하면 값은 힙 메모리에 저장되고, 변수는 스택 메모리에 저장되는데 이게 힙 메모리 주소를 가진다. 따라서 변수로 스택에서 주소를 찾고 이 주소로 힙에서 값을 찾는다.
나중에 그림을 추가하겠다.
728x90
'개발 > C#' 카테고리의 다른 글
as, is 연산자 (0) | 2020.07.21 |
---|---|
List - 리스트 (0) | 2020.07.14 |
Stack and Heap (0) | 2020.07.13 |
? / ?? - C#의 물음표 (0) | 2020.07.13 |
Delegate - 델리게이트 (0) | 2020.07.11 |
댓글