C#

[C#]값 타입 vs 참조 타입

이경로 2023. 7. 4. 23:34

값 타입과 참조 타입의 가장 큰 차이는 값의 직접적인 변경 가능 여부이다.

값 타입은 단순히 값만 복사해 사용하는 별개의 변수인 반면, 참조 타입은 실제 주소를 참조하기 때문에 같은 주소를 여러 이름(변수명)으로 부른다고 생각할 수 있다.

값 타입인 struct와 참조 타입인 class를 예를 들어 설명해 보겠다.

man4의 경우 값 타입이기 때문에 man2로 초기화하더라도 별개의 변수로 취급되며 추후에 man2의 값이 바뀌더라도 man4의 값과는 아무런 관련이 없다.

반면 man3의 경우 참조 타입이기 때문에 man1으로 초기화하게 되면 man1과 같은 주소를 가리키게 되고, man1의 값이 바뀌면 man3의 값 또한 바뀌게 된다.