값형 ( Value Type ) vs 참조형 ( Reference Type )
1. 값형 ( Value Type )
실제 값 자체를 저장하는 타입
- 대표 예시 : int , float , bool , char , struct , enum 등
- 저장 위치 : 스택 ( Stack )
- 특징 : 변수 간 복사시 값이 복제된다.
└ 서로 다른 메모리를 가진다 → 한쪽을 변경해도 다른 쪽에 영향이 없다.
▼예시 코드
int a = 10;
int b = a;
b = 20;
Console.WriteLine(a); // 10
a 와 b 는 서로 다른 공간에 저장되어 있다.
2. 참조형 ( Reference Type )
데이터의 위치 ( 주소 ) 를 저장하는 타입
실제 데이터는 힙 ( Heap )에 저장되고 , 변수는 그 위치를 참조한다.
- 대표 예시 : string , class , array , object 등
- 저장 위치 : 힙 ( Heap ) , 참조주소는 스택에 저장
- 특징 : 복사 시 주소가 복사된다.
└ 같은 객체를 참조하기 때문에 한쪽을 바꾸면 다른 쪽도 영향을 받는다.
▼예시 코드
int[] arr1 = { 1, 2, 3 };
int[] arr2 = arr1;
arr2[0] = 99;
Console.WriteLine(arr1[0]); // 99
arr1 과 arr2 는 같은 배열을 참조 중이다.
비교 표
| 구분 | 값형 ( Value Type ) | 참조형 ( Reference Type ) |
| 저장 위치 | 스택 ( Stack ) | 힙 ( Heap ) |
| 저장 내용 | 실제 데이터 | 데이터의 주소 ( 참조 ) |
| 복사 시 | 값 복사 | 참조 복사 |
| 대표 타입 | int , bool , float , struct | class , string , array |
| 수정 영향 | 독립적 | 서로 영향 있다 |
정리
값형은 데이터를 직접 담는 상자
참조형은 데이터를 가리키는 리모컨이다.
'⭐C Sharp > 01. 변수' 카테고리의 다른 글
| 변수의 선언 위치와 수명 (0) | 2025.10.13 |
|---|---|
| 변수 (Variable) (0) | 2025.09.06 |