저번 시간에는 c#의 기본을 알아보았습니다.
오늘은 변수와 자료형에 대해 알아보겠습니다.
class Player
{
//내용을 채우는 것에 대한 이야기이다
//개념: 플레이어는 골드를 가진다.
(전역변수)
맴버변수의 선언은 int(자료형) 이름(식별자)
리터럴값 = 초기값을 넣을 줄수 있다
리터럴 초기화 = 선언을 함과 동시에 값을 넣어준다
bool lsFight; //변수 선언= 세부속성이면서 명사면서 값...
int Gold = 10
int EXP = 1000;
int Att = 100;
int Def = 400;
}
Exe파일을 실행하면 프로그램은 램에 올라가게(복사) 됩니다.

💡자료형(Date Type)은 변수(Date)을 담은 박스라고 생각하시면 편합니다.
변수는 프로그래밍에서 데이터를 저장하는데 사용되는 식별자입니다
자료형(Date Type)은 기본 제공 자료형(Built-in Type)과 사용자 정의 자료형(User-Defined Type)으로 나누어 지게 됩니다.
1. 기본 제공 자료형(Built-in Type)
- 기본 제공 자료형은 ⭐구조체로 되어 있어서 형식은 값형식(스택에 할당) = (깊은 복사)입니다.
- 하지만 특별하게 참조 형식이 있는데 그게 string입니다. string은 참조 형식이지만, 불변성(immutable)을 가지고 있습니다. 즉, 한 번 생성된 string 객체는 변경할 수 없습니다.
string에 대한 모든 변경 작업은 새로운 string 객체를 생성하게 됩니다.
이러한 특성 때문에 string은 값 형식처럼 동작하는 것처럼 보일 수 있습니다.a. 값형(Value Type) : 변수가 값을 담는 데이터 형식
b. 참조형(Reference Type) : 변수가 값 대신 값이 있는 곳 위치(참조)를 담는 데이터 형식2. 사용자 정의 자료형(User-Defined Type)은 구조체(struct)와 열거체(enum)와 클래스 (Class)으로 나누어져 있습니다.
- 내용이 많아서 다음 파트에 설명드리겠습니다
- 클래스는 중요하니 따로 파트에서 설명드리겠습니다.

변수는 정수, 실수, 부울형, 문자, 문자열이 있는데. 각각 상황에 맞는 자료형이 필요합니다.
값을 담은 데이터 형식 입니다.
값형은 정수,실수, 문자, 부울형으로 나눕니다.
정수를 저장하는 데 사용됩니다.
sbyte : signed 8비트 정수.
_범위 : -128~127_
byte : unsigned 8비트 정수.
범위 : 0~255
short : signed 16비트 정수
범위 : -32,768~32,767
ushort : unsigned 16비트 정수
범위 : 0~65,535
int: signed 32비트 정수.
범위: -2,147,483,648~2,147,483,647
uint : unsigned 32비트 정수.
**범위: 0 ~ 4,294,967,295**
long: signed 64비트 정수.
범위 :-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
ulong: unsigned 64비트 정수.
범위: 0 ~ 18,446,744,073,709,551,615
signed와 unsigned
C언어에서는 signed와 unsigned가 있지만 C#에서는 따로 자료형이 있습니다. 기본적으로 signed가 가지고 있고. unsigned을 붙이고 싶다면 앞에 u를 붙여야 됩니다.간단하게 생각하시면 됩니다.
singed : 양수,음수 둘다 저장 가능
unsigned : 양수만 가능
💡signed와 unsigned 중에 뭐가 더 처리속도가 빠르나요?
unsigned이 가장빠릅니다. unsigned은 양수만 처리하기 때문에 signed보다 처리속도가 빠릅니다
소수점이 있는 숫자를 저장하는 데 사용됩니다.
float : 4byte(32bit) 실수형
약 7자리의 정밀도를 가집니다.
double: 8byte(64bit) 실수형
약 15-16자리의 정밀도를 가집니다.
decimal: 16byte(128bit) 실수형
약 28~29자리의 정밀도를 가집니다.
true 또는 false 값을 저장하는 데 사용됩니다.
단일 문자를 저장하는 데 사용됩니다.
문자의 시퀀스를 저장하는 데 사용됩니다.
참조형은 배열이고, 배열은 주소(포인터)에 저장이 됩니다.(C언어 편에서)
문자열은 문자로 구성된 배열입니다.
💡문자열이 왜 배열인가?
"hello"로 메모리와 연관을 지어서 예시로 해보겠습니다.**
class Hello { public static void main(string args[]) { string A = "hello"; } }"hello"가 그 자체가 메모리에 저장되는 걸로 보일 수 있는데 그렇지 않습니다. 문자열은 문자로 구성된 배열입니다.
![]()
- String A = "hello";를 실행하면, 메모리에 "hello"라는 문자열이 저장됩니다. 이때 각 문자 ‘h’, ‘e’, ‘l’, ‘l’, 'o’는 연속적인 메모리 위치에 저장됩니다. 이렇게 저장된 문자열의 시작 주소가 변수 A에 저장됩니다.
- 변수 A는 이제 "hello"라는 문자열을 가리키게 됩니다. 즉, A는 "hello"라는 문자열이 저장된 메모리의 시작 주소를 가지고 있습니다.
- 따라서 A를 참조하면, A가 가리키는 메모리 위치에 저장된 "hello"라는 문자열이 반환됩니다.