C# - 자료형

MothorMoth·2024년 4월 26일

C#

목록 보기
2/17
post-thumbnail

자료형

  • 자료형(data type)은 저장할 수 있는 데이터의 종류와 크기를 정의하며, 크게 두 가지로 나뉜다.
  1. 값 타입 (Value Types): 데이터를 직접 저장하며, 메모리의 스택에 할당된다. 예를 들어, 기본 데이터 타입인 int, double, float, bool 등이 있다.

  2. 참조 타입 (Reference Types): 데이터의 메모리 주소를 저장하며, 실제 데이터는 힙에 저장된다. 예를 들어, 배열, 클래스, 인터페이스 등이 있다.

  • 값 타입은 변수에 직접 데이터가 저장되어 복사할 때 데이터 전체가 복사되지만, 참조 타입은 메모리 주소만 변수에 저장되어 복사할 때 주소만 복사된다, 따라서 여러 변수가 같은 객체를 참조할 수 있다.

1. 기본 자료형

  • 기본 자료형은 가장 흔하게 사용되는 데이터 유형으로, 특정 크기의 데이터를 저장하고, 특정 연산을 수행할 때 사용된다.
자료형.NET 데이터 타입크기 (바이트)범위
sbyteSystem.SByte1-128 ~ 127
byteSystem.Byte10 ~ 255
shortSystem.Int162-32,768 ~ 32,767
ushortSystem.UInt1620 ~ 65,535
intSystem.Int324-2,147,483,648 ~ 2,147,483,647
uintSystem.UInt3240 ~ 4,294,967,295
longSystem.Int648-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
ulongSystem.UInt6480 ~ 18,446,744,073,709,551,615
floatSystem.Single4±1.5 × 10^-45 ~ ±3.4 × 10^38
doubleSystem.Double8±5.0 × 10^-324 ~ ±1.7 × 10^308
decimalSystem.Decimal16±1.0 × 10^-28 ~ ±7.9 × 10^28
charSystem.Char2유니코드 문자
stringSystem.String유니코드 문자열
boolSystem.Boolean1true 또는 false
  • 자료형을 세분화 해서 사용하는 이유
  1. 메모리의 효율적인 사용: 해당 자료형이 필요한 크기만큼의 메모리를 할당하여 메모리의 효율적인 사용을 가능하게 한다.

  2. 정확한 데이터 표현: 각 데이터의 특성에 가장 적합한 형태로 표현할 수 있으며, 이는 다양한 범위의 값과 다른 특성을 가진 데이터를 더욱 정확하게 다루게 해준다.

  3. 타입 안정성: 세분화된 자료형을 사용하면, 코드의 타입 안정성을 유지할 수 있다. 예를 들어, 사용한 자료형이 가질 수 있는 값의 범위를 벗어날 경우 오류가 발생하므로, 코드의 안정성을 보장할 수 있다.

2. 명시적 및 암시적 형변환

  • 자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하려면 명시적 형변환(explicit casting) 또는 암시적 형변환(implicit casting)을 해주어야 한다.
  1. 명시적 형변환
  • 명시적 형변환은 (자료형) 형식으로 수행할 수 있다.
int num1 = 10;
long num2 = (long)num1; // int를 long으로 명시적 형변환
  1. 암시적 형변환
  • 직접 형변환 코드를 작성하지 않아도 되므로 코드를 간결하게 작성할 수 있지만, 암시적 형변환이 발생하는 경우 데이터 타입을 신중하게 고려하여 코드를 작성해야 한다.

  • 작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우

byte num1 = 10;
int num2 = num1; // byte형에서 int형으로 암시적 형변환
  • 리터럴 값이 대입되는 경우
float num = 1; // 1은 int형 리터럴 값이지만 float형으로 암시적 형변환
  • 정수형과 부동소수점형 간의 연산을 수행하는 경우
int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2; // int형과 float형의 덧셈에서 float형으로 암시적 형변환

3. var

  • var 키워드를 사용하여 변수를 선언하면 초기화 값에 따라 자동으로 자료형이 결정되므로, 변수의 자료형을 선언 시점에서 명확히 알 수 없는 경우에 유용하다.
var num = 10;        // int 자료형으로 결정됨
var name = "moth"; // string 자료형으로 결정됨
var pi = 3.141592;   // double 자료형으로 결정됨

0개의 댓글