C# 변수 완벽 이해: 타입, 저장소, 사용법 총정리
변수(Variable)는 프로그램이 조작할 수 있는 저장 영역에 주어진 이름입니다. C#의 모든 변수는 특정 타입을 가지며, 이 타입은 변수의 메모리 크기와 레이아웃, 저장 가능한 값의 범위, 적용 가능한 연산 집합을 결정합니다.
C# 기본 값 타입 분류
| 타입 분류 |
예시 |
| 정수 타입 (Integral types) | sbyte, byte, short, ushort, int, uint, long, ulong, char |
| 부동소수점 타입 (Floating point types) | float, double |
| 10진수 타입 (Decimal types) | decimal |
| 불리언 타입 (Boolean types) | true, false |
| 널 허용 타입 (Nullable types) | Nullable<T> 형태의 타입 |
이 외에도 enum(열거형)과 class(참조 타입) 등 사용자 정의 값 타입을 정의할 수 있습니다.
변수 정의 (Declaration)
C#에서 변수 정의 구문은 다음과 같습니다.
<데이터_타입> <변수_리스트>;
데이터_타입: char, int, float, double 등 유효한 C# 타입 또는 사용자 정의 타입
변수_리스트: 쉼표로 구분된 하나 이상의 식별자 이름
유효한 변수 정의 예시
int i, j, k;
char c, ch;
float f, salary;
double d;
변수 초기화 (Initialization)
변수는 등호(=)와 상수 표현식으로 초기화합니다.
변수_이름 = 값;
선언과 동시에 초기화할 수도 있습니다.
<데이터_타입> <변수_이름> = 값;
초기화 예시
int d = 3, f = 5; // d, f 초기화
byte z = 22; // z 초기화
double pi = 3.14159; // 파이 근사값 선언
char x = 'x'; // 문자 'x' 저장
모범 사례: 변수는 선언 시 반드시 초기화하는 것이 좋습니다. 초기화되지 않은 변수 사용 시 예기치 않은 결과나 컴파일 오류가 발생할 수 있습니다.
사용자 입력 받기
System 네임스페이스의 Console 클래스는 ReadLine() 메서드로 사용자 입력을 문자열로 받아옵니다. 숫자 타입으로 변환하려면 Convert 클래스를 사용합니다.
int num;
num = Convert.ToInt32(Console.ReadLine());
Console.ReadLine()은 문자열을 반환하므로, Convert.ToInt32()로 정수 타입으로 변환해야 합니다.
Lvalue와 Rvalue 표현식
C#에는 두 종류의 표현식이 있습니다.
- lvalue: 대입 연산자의 좌변 또는 우변에 모두 올 수 있는 표현식 (예: 변수)
- rvalue: 대입 연산자의 우변에만 올 수 있는 표현식 (예: 숫자 리터럴)
int g = 20; // 유효: g는 lvalue
10 = 20; // 컴파일 오류: 10은 rvalue이므로 좌변에 올 수 없음