C# 기본자료형, 변수

Posted by 알 수 없는 사용자
2015. 3. 22. 23:51 프로그래밍/C#

1. 기본 자료형

자료형(Data Type) : 데이터를 담을 수 있는 형식

기본 자료형(Primitive Data Type) : 개발자가 별도의 코드를 만들지 않아도 언어에서 자체적으로 제공하는 데이터 형식

다음은 C#에서 제공하는 기본 자료형이다.


자료형

 형식

 범위

 크기

 sbyte

 System.SByte

 -128 ~ 127

 부호 있는 8 bit 정수

 byte

 System.Byte

 0 ~ 255

 부호 없는 8 bit 정수

 short

 System.Int16

 -32,768 ~ 32,767

 부호 있는 16 bit 정수

 ushort

 System.UInt16

 0 ~ 65,535

 부호 없는 16 bit 정수

 int

 System.Int32

 -2,147,483,648 ~ 2,147,483,647

 부호 있는 32 bit 정수

 uint

 System.UInt32

 0 ~ 4,294,967,295

 부호 없는 32 bit 정수

 long

 System.Int64

 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,808

 부호 있는 64 bit 정수

 ulong

 System.UInt64

 0 ~ 18,446,744,073,709,551,615

 부호 없는 64 bit 정수

 float

 System.Single

 ±1.5e-45 ~ ±3.4e38

 4 byte

 double

 System.Double

 ±5.0e-324 ~ ±1.7e308

 8 byte

 decimal

 System.Decimal

 ±1.0 × 1028  ±7.9 × 1028

 16 byte

 char

 System.Char

 U+0000 ~ U+ffff

 유니코드 16 bit 문자

 string

 System.String

 

 유니코드 문자열

 bool

 System.Boolean

 

 4 byte


2. 변수

변수는 변수의 이름과 값으로 구성된다.

닷넷에서 변수의 종류는 값 형식(Value Tpe)을 가리키는 변수와 참조 형식(Reference Type)을 가리키는 변수 두 가지가 있다.

2.1 값 형식(Value Type)






Value Type의 경우 값 자체가 스택 영역에 할당되고 변수는 식별자가 된다. 위 코드에서 보면 int는 자료형 a는 식별자가 된다.

그리고 스택영역에 a라는 공간을 할당하고 a의 값인 6이 기록된다.

이러한 Value Type에 속하는 것으로 sbyte, byte, ushort, short, uint, int, ulong, ulong, float, double, bool이 있다.

스택은 하나의 스레드가 생성되면 기본적으로 1MB의 용량이 할당되고 이 용량을 넘으면 스택오버플로우가 발생한다.


2.2 참조 형식(Reference Type)


Reference Type의 경우 값을 담기 위한 별도의 힙 영역의 메모리를 할당하고, 스택의 변수 값은 힙의 데이터주소를 가리킨다.

만약 참조가 없을 경우 가비지 컬렉터에 의해 삭제 된다.

힙(heap)의 경우 CLR에서 관리 힙(Managed heap)을 가리킨다. C#에서는 new로 할당되는 모든 참조형 객체는 힙에 할당된다.








출처 : 

시작하세요! C# 프로그래밍

'프로그래밍 > C#' 카테고리의 다른 글

C# Linq  (3) 2015.05.18
C# 람다식(Lamda Expression)  (9) 2015.04.11
C# 대리자(Delegate)  (288) 2015.04.08
C# 가비지 컬렉션(Garbage Collection)  (1274) 2015.03.23