C# 강좌 : 제 9강 - 데이터 형식
데이터 형식(Data Type)
데이터 형식에는 기본 데이터 형식(Primitive Data Type)
과 복합 데이터 형식(Complex Data Type)
이 있습니다.
이 데이터 형식은 값 형식(Value Types)
과 참조 형식(Reference Types)
으로 나뉩니다.
즉, 기본 데이터 형식에 값 형식과 참조 형식이 되며 복합 데이터 형식에도 값 형식과 참조 형식이 되는 부분이 있습니다.
변수(Variable)
변수란 데이터를 저장하는 공간입니다.
저장하는 공간의 크기는 데이터 형식에 따라 결정됩니다.
변수는 다음과 같이 선언합니다.
int
: 데이터 형식x
: 식별자 (변수)=
: 대입 연산자100
: 데이터;
: 세미콜론
데이터 형식
, 식별자
, 연산자
, 데이터
, 세미콜론
5가지의 구성요소로 변수를 할당 할 수 있습니다.
또한 다음과 같이 선언할 수도 있습니다.
첫 번째 방법은 선언 및 초기화를 한 번에 한 방법이며, 두 번째 방법은 선언과 데이터 할당을 별도로 한 방법입니다.
위와 같이 여러 개의 변수를 동시에 선언할 수 있습니다.
단, 동시에 선언하는 변수들은 데이터 형식이 같아야 하며 각각 쉼표(,)
를 이용하여 구분해야합니다.
초기화(Initialization)
초기화(Initialization)이란 변수가 선언된 최초에 데이터를 할당하는 것을 의미합니다.
int = x; 이후 x의 값에 아무 데이터도 입력하지 않으면 x 변수에는 쓰레기 값이 들어가게 됩니다.
C#에서는 할당되지 않은 변수가 사용될 경우 오류 (CS0165)가 발생하여 문제발생을 억제합니다.
기본 데이터 형식(Primitive Data Type)
기본 데이터 형식(Primitive Data Type)은 숫자 형식, 문자열 형식, 논리 형식, 오브젝트 형식으로 나누어집니다.
숫자 형식과 논리 형식은 값 형식(Value Types)에 해당하며, 문자열 형식과 오브젝트 형식은 참조 형식(Reference Types)에 해당합니다.
데이터 형식 | NET 클래스 | 형식 | 비트 | 범위 |
---|---|---|---|---|
byte | Byte | 부호 없는 정수 | 8 | 0 ~ 255 |
sbyte | SByte | 부호 있는 정수 | 8 | -128 ~ 127 |
short | Int16 | 부호 있는 정수 | 16 | -32,768 ~ 32,767 |
ushort | UInt16 | 부호 없는 정수 | 16 | 0 ~ 65,535 |
int | Int32 | 부호 있는 정수 | 32 | -2,147,483,648 ~ 2,147,483,647 |
uint | UInt32 | 부호 없는 정수 | 32 | 0 ~ 4,294,967,295 |
long | Int64 | 부호 있는 정수 | 64 | -922,337,203,685,477,508 ~ 922,337,203,685,477,507 |
ulong | UInt64 | 부호 없는 정수 | 64 | 0 ~ 18,446,744,073,709,551,615 |
float | Single | 단정밀도 부동 소수점 형식 | 32 | -3.402823e38 ~ 3.402823e38 |
double | Double | 배정밀도 부동 소수점 형식 | 64 | -1.79769313486232e308 ~ 1.79769313486232e308 |
decimal | Decimal | 29자리 데이터를 표현하는 소수 형식 | 128 | -3.402823e38 ~ 3.402823e38 |
char | Char | 단일 유니코드 문자 | 16 | 유니코드 기호 |
string | String | 문자 시퀀스 | - | - |
bool | Boolean | 논리 형식 | 8 | true 또는 false |
object | Object | 모든 형식의 기본 형식 | - | - |
값 형식(Primitive Data Type)과 참조 형식(Reference Types)
값 형식은 변수가 값을 담는 데이터 형식입니다.
스택(Stack)
에 할당되고 변수 생성 코드 범위를 벗어나면 해제됩니다.
참조 형식은 변수가 값 대신에 값이 있는 곳의 위치를 담는 데이터 형식입니다.
힙(Heap)
에 할당되고 가비지 컬렉터에 의해 해제됩니다.
즉, 데이터를 스택(Stack)에 저장하느냐, 힙(Heap)에 저장하느냐의 차이를 보입니다.
메서드를 통해 생성된 변수는 스택(Stack)에 저장되며 new 한정자를 이용한 변수는 힙(Heap)에 저장됩니다.
상수(Constants) & 열거 형식(Enumerator)
상수(Constants)는 변하지 않는 값을 의미합니다.
데이터 형식 앞에 const 를 입력합니다. const 를 입력한 데이터는 변경할 수 없습니다.
열거 형식(Enumerator)은 여러 개의 상수를 선언할 때 한번에 묶어서 선언해주는 방법입니다.
const 를 사용하지 않고 enum 을 이용합니다.
위와 같이 선언하며 불러올 수 있습니다. ‘enum 열거 형식 : 데이터 형식 { 상수1, 상수2, 상수3, … }’ 형태입니다.
label1에 출력되는 값은 two가 됩니다. 데이터 형식 안에 들어가는 요소에는 0 부터 시작합니다.
만약, x.일 + 1이 아니라 x.일 - 2일 경우에는 -1이 출력되게 됩니다.
x.일의 요소 값은 1이며 1-2 = -1 이므로, -1이 출력됩니다.
Nullable 형식
Nullable 형식은 값 형식에서만 사용되며, 해당 변수를 비우는 의미입니다.
프로그램 실행 시 null 값일 경우 에러가 발생하게되므로 비어있는 값일 경우 return하는 용도로 많이 사용됩니다.
댓글 남기기