C# 변수(Variable)

2022. 10. 27. 20:31언어/C#

프로그래밍에서 가장 많이 접하는 것 중 하나가 바로 변수이다. 그럼 변수란 무엇일까?

변수는 계속 변하는 값이면서, 그 값을 저장하는 공간을 말한다. 값(데이터)를 담아두는 저장 공간이다.

그럼 왜 저장 공간이 필요한 지를 알아야한다. 마트에 장을 보러 간다고 하면 보통 카트를 끌고간다. 만약 물건을 수 있는 카트나 장바구니가 없다면 아마 여러번 계산대를 왔다갔다 해야할 것이다. 또 초콜릿이라는 물건을 구매할려고 했는데 어딨는지 보이지 않는다. 그래서 직원에게 물어봤더니 그 직원도 어디에 진열되어 있는지 모른다고 한다. 그럼 나는 매장안을 전부 둘러보며 초콜릿을 찾아야 한다. 이렇듯 내가 필요한 값을 쓰려고 할 때 변수를 이용해 값을 담아 놓지 않으면 찾기가 힘들다. 그래서 변수는 중요하다. 가장 기본적이며, 확실히 짚고 가야한다.

 

이제 부터 우리는 변수를 생성할 때 선언한다고 말한다. 보통 선언이라고 하면 내가 아닌 다른 누구에게 내가 한 말을 알려줄 때 선언한다고 한다. 그 뜻이 맞다. 우리는 코드를 작성을 하면 컴파일러에게 내가 변수를 만들었다는걸 알려주는 행위이다. 컴파일러를 아주 간단히 말하면 우리가 쓴 코드를 컴퓨터가 이해할 수 있도록 기계어로 변환해주는 일을 한다.

 

변수의 선언은 [자료형 식별자;]가 기본 문법이다. 

int appleBox;

 어려운 단어가 벌써부터 나오는데 그냥 간단하게 자료형은 저장공간의 형태이고 식별자(변수명)는 저장공간 이름이라고 정도로만 알고 넘어가자.

 자료형은 아무렇게 만들 수 없다. 이미 규격화된 종류가 존재한다. 우리는 그것을 알고 적재적소에 쓰기만 하면 된다. 예를 들어 과일 가게에 갔다고 하자. 가게 사과 상자, 배 상자, 멜론상자, 포도를 덮은 비닐봉투가 저마다 과일과 함께 진열되어 있다. 만약 멜론 상자에 포도를 넣으려하면 어떻게 될까? 물론 들어가긴 하겠지만 포도 한송이를 구매했다고 치자 포도보다 몇배는 크고 넓은 상자에 담아버리니 들고다니기도 불편하고, 들고 다니다 보면 보면 흔들거려 포도송이들이 충격으로 떨어질 수도 있다. 반대로 멜론을 포도 비닐봉투에 담으려고 하면 바로 멜론의 크기를 버티지 못해 바로 찢어질 것이다. 그래서 자료형은 중요하다.

 식별자(변수명)는 따로 말안해도 왜 써야하는지 감이 올것이다. 감이 오질 않는다면 생각해보자. 이번에는 과일가게 알바로 일하고 있다. 사장님이 창고에 사과 한 박스를 가지고 오라는 말을 했다. 창고로 가보니 수십개의 상자들이 있었다. 그런게 이게 무슨 일인가 하필 이번에 들어온 상자들의 페인트가 잘 인쇄되지 않아 상자에 뭐가 들었는지를 도무지 구분이 되질 않는다. 그럼 결국 하나하나 열어보면서 사과 상자를 찾아야한다. 처음 배달이 왔을 때 미리 상자에 이름을 적어뒀더라면 이러한 사태는 일어나지 않았을 것이다. 그래서 변수의 이름은 꼭 잘 지어주는 게 좋다.

 

이번엔 변수에 값을 넣어볼 것이다. 이 행위는 크게 두가지로 구분된다. 바로 할당과 초기화다. 나도 코딩을 얼마 배우지 않았을 때 할당과 초기화를 항상 헷갈려했다. 예문 부터 확인해보자.

 

int appleBox;
appleBox = 1;
int appleBox = 1;

둘이 비슷해보이나 조금 다르다. 하지만 결과적으론 같다. 자세히보니 = 는 왜쓰는걸까? 수학에서는 분명  좌변과 우변이 같다는걸 말해준다. 하지만 코딩에서는 조금 다르다. 우변에 있는 것을 좌변에 대입하는것(대입 연산자라고도 한다)을 의미한다. 사과가 들어갈 수 있는 상자에 이름을 appleBox라고 지어주고 그 안에 1이라는 값을 대입한 것이다. 위에 이야기 했던 할당과 초기화에 대해 이야기 해보면 하나는 할당이고 하나는 초기화이다.

 

변수가 선언 이후에 값을 대입 하면 할당

변수의 선언과 대입이 동시에 이루어지면 초기화

 

이제 변수도 선언하고 할당도 했으니 내가 무슨일을 하다가도 사과상자의 내용이 필요하면 변수이름을 통해 바로바로 안에 내용을 확인 할 수 있다.

 

이해하는데 생각보다 어렵진 않지만 확실히 짚고 가면 나중에 코딩을 할 때 더 도움이 되리라 확신한다. 더 개념적인 내용이 궁금하거나, 아직 이해가 되지 않았다면 인터넷에 키워드를 검색해본다면 더 많은 자료를 찾아 볼 수 있다.

키워드 : 변수 , 자료형 , 식별자 , 할당 , 초기화 , 대입 연산자

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

[C#] 캐싱  (0) 2024.11.22
C# 함수 , 메서드  (0) 2022.10.31
C# 접근 한정자, 접근 제한자(Access Modifier)  (1) 2022.10.29
C# 자료형이란  (1) 2022.10.28