C#/프로그래밍 기초

C# 기초 - 03. 변수

tita 2024. 5. 26. 16:31

변수는 값을 저장할 떄 사용하는 식별자 입니다.

 

변수는 두 단계를 거쳐서 사용합니다.

 

- 변수를 선언한다.

- 변수에 값을 할당한다.

 

변수를 선언한다 == 변수를 만드는 행위

변수에 값을 할당한다 == 변수에 값을 넣는 행위

(자료형) (이름)  = (값); 

  int    number   =   3;

 

변수는 위의 형태로 선언됩니다.

 

변수는 크게는 이전에 배운 자료형의 종류를 따릅니다.

 

[정수 자료형]

키워드 설명
int 4바이트 정수
long 8바이트 정수

 

 

static void Main(string[] args)
{
    // 변수 선언
    int a = 10;
    int b = 5; 
    
    
    Console.WriteLine(a + b);
    Console.WriteLine(a / b);
    Console.WriteLine(a % b);
}



/*
[실행 결과]
15
2
0
*/

 

일반적으로 정수를 만들 때 int 자료형을 사용하는데 정수 자료형에 int 와 long 이 있는 이유에 대해 알아보겠습니다.

 

int 자료형은 4바이트(32bit) 입니다.

이 말은 2<sup>32</sup> 개의 숫자(-2,147,483,648 ~ 2,147,483,647) 까지의 수만 나타낼 수 있다는 말이 됩니다.

 

 

즉 int 자료형의 최대 범위인 2,147,483,647 에 1을 더하면 -2,147,483,648 가 출력되고 이러한 현상을

오버플로우(Overflow)라고 부릅니다.

 

long 자료형은 8바이트이니 나타낼 수 있는 수의 범위가 int 자료형보다 넓습니다.

 

int 자료형의 범위는 (-최소값 ~ +최대값) 입니다. 

만약 음수는 사용하지 않는 변수라면 범위의 절반을 낭비하게 됩니다.

이때 사용하는 자료형이 있는데 이것을 unsigned 자료형이라 부릅니다.

 

unsigned 자료형은 사용할 자료형 앞에 u를 붙이면 됩니다.

static void Main(string[] args)
{
    uint unsignedInt = 4147483647;
    ulong unsignedLong = 11223372036854775808;
    
    Console.WriteLine(unsignedInt);
    Console.WriteLine(unsignedLong);
}

 

이렇게 사용하면 기존 자료형의 범위를 넘어서도 표현이 가능합니다.

 

 

 

[실수 자료형]

키워드 설명
float 4바이트 실수
double 8바이트 실수

 

변수 선언 방법이나 사용방법 등은 정수 자료형과 동일한 방식을 사용합니다.

static void Main(string[] args)
{
    double a = 52.111;
    double b = 1.02;
}

 

 

[문자 자료형]

키워드 설명
char 문자

 

static void Main(string[] args)
{
    char a = 'a';
    double b = '가';
}

 

C언어에서는 char 자료형을 1바이트로 정의하지만 C# 에서는 char 자료형을 2바이트로 정의합니다.

char을 사용하실 때 이 점에 유의해야 합니다.

 

sizeof 연산자를 사용해 이를 확인 할 수 있습니다.

 

static void Main(string[] args)
{
    Console.WriteLine("int : " + sizeof(int));
    Console.WriteLine("char : " + sizeof(char));
}

/*
[실행 결과]
int : 4
char : 2
*/

 

 

[문자열 자료형]

키워드 설명
string 문자열 자료형

 

static void Main(string[] args)
{
    string word = "beautiful";
    
    
    Console.WriteLine(word + "!!!");
}


/*
[실행 결과]
beautiful
*/

 

문자열 자료형은 sizeof 연산이 불가능합니다.

 

[불 자료형]

키워드 설명
bool 불 자료형

 

static void Main(string[] args)
{
    bool a = 1 < 0;
    bool b = 100000 < 10;
    
    Console.WriteLine(a);
    Console.WriteLIne(b);
}

/*
[실행 결과]
False
False
*/