C#의 데이터 형식
데이터 처리를 위해서는 데이터를 저장해야 하는데 데이터를 종류에 따라 분류하여 적절한 크기의 공간을 저장하기 위해서는 데이터 타입이 필요함.변수에 저장되는 값의 종류를 데이터 타입 이라고 한다.메모리의 크기인 바이트(byte)가 높을수록 표현할 수 있는 데이터의 범위 또한 커진다.
자료형 | 명칭 | 크기(byte) | 값의 범위 | |
정수형 |
부호있음 | short | 2byte | -32,768~ +32,767 |
int | 4byte | -2,147,483,648~ +2,147,483,647 |
||
long | 4byte | -2,147,483,648~ +2,147,483,647 |
||
부호없음 | unsigned short | 2byte | 0~65535 | |
unsigned int | 4byte | 0~4294967295 | ||
unsigned long | 4byte | 0~4294967295 | ||
실수형 |
float | 4byte | ±3.4x10^-37 ~ ±3.4x10^38 | |
double | 8byte | ±1.7x10^-307 ~ ±3.4x10^308 | ||
long double | 8byte이상 | double이상의 표현범위 |
값 형식과 참조 형식
값 형식(Value Types)
- 스택(stack)에 힙 메모리의 주소가 저장된다.
- 정적으로 메모리에 할당된다.
- 변수가 값을 담는 데이터 형식
- " } " 를 만나면 소멸한다.
참조 형식
- 힙(heap)에 데이터를 직접 저장한다.
- 동적으로 메모리에 할당된다.
- 힙 영역에는 데이터를 저장하고 스택 영역에는 데이터가 저장된 힙 메모리의 주소를 저장한다.
object a = 10;//10은 heap에 저장, a와b의 주소는 stack 에 저장
object b = 20;
박싱과 언박싱?
- 박싱이란 값 형식의 객체를 참조 형식으로 변환하는 작업이다.
- 언박싱은 박싱했던 값을 다시 원상복귀 시키는 작업이다
언박싱을 할 때 다른 타입으로 하거나 해당 타입보다 작은 범위로 변환하면 오류가 발생하기 때문에 같은 타입인지
확인하는 절차가 필요하다.
박싱과 언박싱은 성능에 영향을 미칠 수 있기 때문에 주의해서 사용해야함!
'C#은 처음이라' 카테고리의 다른 글
C# 문자열(string) (0) | 2024.03.07 |
---|---|
C# 가상함수 (0) | 2024.03.06 |
C# 추상화(Abstract) (0) | 2024.03.06 |
C# 배열 활용 (0) | 2024.03.06 |
C# 캡슐화 (0) | 2024.03.06 |