C#

변수

게임만드는학생 2025. 1. 18. 04:29

 

프로그래밍 언어에서 변수란 

int hp=100;

위 처럼 특정 형식의 데이터를 저장하고 사용하기 위해 생성하는 것을 말한다. 

 

C#에서 이 변수는 코드가 실행되면 선언은 컴파일타임에,  메모리에 공간이 할당은 런타임에 진행된다. 

 

메모리의 어떤 곳에 hp란 변수에 대한 공간을 할당하고 그 공간을 우리는 hp라는 이름으로 접근이 가능하게 된다.

그리고 그 공간에 100이라는 값을 저장하려면 hp= 100 이라 작성하며,

공간에 있는 값을 읽어오고 싶다면 hp 라고 접근하면 된다.

 

이러한 변수는 [데이터 타입] [이름] 형식으로 선언한다. 이 때, 이름은 헷갈리지않고 무슨 값을 위한 것인지 알기 위해 명확히 짓는게 중요하다. 

 

데이터 타입에는 여러가지가 있다. 

 

우선 int 는 정수형 변수를 의미한다. 

정수형에도 여러가지가 있지만 가장 대표적으로 사용되는 데이터 타입이다. 

 

변수를 선언할 때는 사용될 값의 범위를 고려하여 데이터 타입을 골라 사용해야 한다.

그러기 위해선 대강이라도 범위를 알 필요가 있는데 int 는 -2^31 ~ 2^31-1 의 범위를 표현할 수 있다. 

그 이유는 int는 4바이트 즉, 32비트로 표현이 되는데 첫비트는 부호로, 나머지는 2^31을 표현할 수 있기때문이다. 

컴퓨터는 2의 보수로 계산을 하는데 첫비트가 1 즉 음수에서 그 뒤가 전부 0이면 -2^31 이고

첫비트가 0 즉, 양수에서 그 뒤가 전부 1이면 2^31-1 이기 때문에 int 범위가 -2^31 ~ 2^31-1 의 범위를 가지게 된다. 

그래서 int 는  -2^31 ~ 2^31-1 의 범위를 표현할 수 있다. 

 

다음은 float이다. 

float은 실수형 변수를 의미한다. 

소수점을 나타내고 int와 마찬가지로 4바이트를 사용한다. 

사용 시 숫자뒤에 f를 붙여 float형임을 나타내야한다. 

 

또다른 실수형은 double이 있다.

8바이트를 사용하는데 아주 정밀하게 숫자를 나타낼때 float대신 사용하지만 대체적으로 float을 사용한다.

 

다음은 문자에 관련된 변수이다. 

먼저 string 은 문자열을 저장할 수 있는 변수이다.

string s = "game programming!";

위와 같이 큰 따옴표로 저장할 문자열을 표시한다. 

 

다음은 문자 한개만 저장하는 char 형이다.

char c = 'A';

위와 같이 작은 따옴표로 문자를 표기한다. 

C#에서는 이 char 형이 2바이트를 사용한다. 그래서 다른 여러나라의 언어도 사용이 가능하다. 

 

컴퓨터에서는 이 문자를 정해진 숫자로 저장을 해놓는데 개발자가 이 변수를 다시 불러올 때, 그 정수에 해당하는 문자를 반환해주는 방식으로 동작한다. 

 

다음은 bool 형이다. 

bool형은 참과 거짓 두가지의 값만 가지는 데이터타입이다. 

 

 

다음은 형변환이다.

데이터 형식을 말그대로 변환하는 것을 의미한다.

int a = 100;
short b = a;

위 코드는 에러가 발생하는데 이유는 캐스팅을 해주지 않았기 때문이다. 

short b = (short)a;

위 코드와 같이 캐스팅을 해줘야 에러가 발생하지 않는다.

이유는 a의 값이 short의 범위를 벗어나는 값이라면 b에는 이상한 값이 들어갈 수 있다. 따라서 그런 위험성이 있는 코드이니 명시적으로 short로 바꾸려는게 맞는지 적어줘야 하는 것이다. 

 

또한 게임개발에서는 string <-> int 의 변환이 아주 빈번하게 필요한데, 

C#에서 우선 int.Parse() 함수가 있다.

int a;
string m ="100";

a = int.Parse(m);

위 코드를 실행하면 a 에 100이 저장된다. 

 

반대로 int->string 은 int.ToString() 함수를 통해서 문자열로 변환할 수 있다. 

 

그렇다면 문자열에 변수를 섞어서 완성하고 싶다면?

int hp=10;
string.Format("나의 HP는 {0}",hp);

첫번째로는 Format().함수를 이용하는 것이다. 

 

int hp=10;
string s = $"나의 HP는 {hp}입니다.";

두번째는 바로 $기호를 써서 문자열에서 바로 사용이 가능하다. 

 

C#의 변수타입에 대해서 간단하게 정리하였다.