C#은 데이터의 메모리 저장 방식에 따라 두 개의 타입으로 나뉘게 된다.
바로 값 형식(Value Type)과 참조 형식(Reference Type)이다.
두 형식은 다음과 같은 차이점이 있다.
값 형식(Value Type) | 참조 형식(Reference Type) |
변수에 값을 대입하는 데이터 형식 int, double형 등등이 있다. 데이터를 스택(Stack) 메모리에 할당한다. |
변수에 값 대신 값의 주소를 대입하는 데이터 형식 대표적으로 object형이 있다. 데이터를 힙(Heap) 메모리에 할당한다. |
값 형식의 경우 데이터를 복사하여 저장하기 때문에, 원래 변수의 값을 두 번째 변수에 할당하면 원래 변수의 값 사본이 새로운 변수의 위치에 만들어진다. 따라서 첫 번째 변수를 변경해도 두 번째 변수의 값에는 영향을 주지 않는다.
반면 참조 형식의 경우 메모리를 복사하는 대신 주소값만 저장하기 때문에, 두 변수가 같은 데이터를 참조하게 된다.
따라서 첫 번째 변수를 변경하는 경우 두 번째 변수에도 영향이 가게 된다.
'Programming > C C# C++' 카테고리의 다른 글
C#) C#에서의 배열 사용 방법 (2) | 2024.11.18 |
---|---|
C#) 캐스팅, 박싱, 언박싱 (0) | 2024.11.14 |
C#) Null과 Void의 차이 (0) | 2024.11.13 |
1.1 + 0.1 == 1.2가 false인 이유 (1) | 2024.11.11 |
C#) 문자열 입력 시 변수를 추가하는 방법 (0) | 2024.11.08 |