본문 바로가기

Development/C#

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로 할당되는 모든 참조형 객체는 힙에 할당된다.

 

 

 

 

 

 

 


출처: https://hackersstudy.tistory.com/8

시작하세요! C# 프로그래밍 [공대인들이 직접쓰는 컴퓨터공부방]

 

C# 기본자료형, 변수

1. 기본 자료형 자료형(Data Type) : 데이터를 담을 수 있는 형식 기본 자료형(Primitive Data Type) : 개발자가 별도의 코드를 만들지 않아도 언어에서 자체적으로 제공하는 데이터 형식 다음은 C#에서 제

hackersstudy.tistory.com

 

 

https://archive.ph/oWpS5

 

 

'Development > C#' 카테고리의 다른 글

GetBytes(String) - C#  (0) 2022.03.18
ToString("D4") - C#  (0) 2022.03.18
C#/.NET String과 string의 차이, Int32와 int의 차이  (0) 2022.03.17
NetworkStream Class  (0) 2022.03.17