[Study][C#] 구조체와 클래스

LimJaeJun·2024년 1월 26일

Study

목록 보기
8/16

값 타입과 참조 타입

값 타입

값 타입은 데이터를 스택 메모리에 저장하는 타입으로 데이터를 직접 포함하고 있으며, 변수에 할당될 때 값이 복사된다. 값 타입은 주로 단순한 데이터를 표현할 때 사용되며, 크기가 작고 불변적인 특성을 가지고 있다.

참조 타입

참조 타입은 데이터의 주소를 가지고 있으며, 실제 데이터는 힙 메모리에 저장된다. 변수에는 데이터의 주소가 할당되어 데이터에 대한 참조를 제공한다. 참조 타입은 주로 크고 복잡한 객체를 다룰 때 사용되며, 여러 변수가 동일한 데이터를 참조할 수 있다.

Struct와 Class

Struct (구조체)

  • 메모리 할당: 스택에 할당되므로 더 경제적이지만 크기가 커지면 성능 저하 가능성이 있습니다.
  • 복사: 값이 복사되어 독립적으로 사용됩니다.
  • 불변성: 불변적인 특성을 가지며 수정이 불가능합니다.

Class (클래스)

  • 메모리 할당: 힙에 할당되어 메모리 소비가 높지만, 크기에 상관없이 일관된 성능을 제공합니다.
  • 복사: 참조가 복사되어 같은 데이터를 공유합니다.
  • 가변성: 수정이 가능하며, 데이터를 동적으로 변경할 수 있습니다.

언제 어떤 것을 사용할까?

  • struct는 작은 크기의 데이터나 불변 데이터를 효과적으로 나타낼 때 사용하며, 값의 복사가 적절한 경우에 유용합니다.
  • class는 크고 복잡한 데이터나 객체를 다룰 때 사용하며, 데이터를 공유하고 변경해야 하는 경우에 유용합니다.
profile
Dreams Come True

0개의 댓글