독도갈매기의 개발 블로그
변수란 무엇일까? 본문
변수란?
흔히 아는 변수의 개념은 국어사전에서의 의미인 아래의 개념으로 많이들 알고 있습니다.
- 어떤 상황의 가변적 요인
- 어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수
하지만 컴퓨터에서의 변수는 조금은 다른 의미를 가지고 있는데요
그럼 뭔데?
변수는 어떤 공간에 어떤 값을 저장하기 위한 이름을 가진 공간이다.
int a = 0;
a = 20;
처음 들었을 때는 위와 같은 코드를 보고 설명을 듣기 때문에 결국 변할 수 있는 수 변수 아니야?
라는 생각이 드는게 정상일지도 모르죠
물론 저도 그런 생각을 했었지만 지금은 틀리다고 생각하는 이유를 설명해볼까 합니다.
계속 변하는 수 보다는 계속 변하는 공간이지 않을까 싶습니다.
연산? 저장?
컴퓨터는 기본적으로 연산과 기억을 따로 한다는 것쯤은 어느정도 알고있는 상식이지 않을까 싶은데,
간단히 설명하자면 CPU에서는 연산작업을 하고, 주 기억 장치라는 친구와 보조 기억 장치 라는 친구들이 기억하는 역할을 합니다.
더 자세한 이야기는 나중에 더 다루도록 하겠습니다.
공간?
그럼 위에서 말한 공간은 무엇을 의미한 걸까?라는 생각이 들었다면 제 글이 어느 정도 성공한 것 같네요
int a;
int b = 20;
위에서 a와 b라는 변수를 각각 지정해줬습니다. 이때 일어나는 일은 놀고 있는 메모리를 끌어다쓰게 되는데요
a는 선언만 했고 b는 초기화까지 완료했습니다. 여기서 만약 증감연산식을 한다면 어떻게 될까요?
a++; or a += 1;
b++; or b += 1;
에러를 뱉을 것입니다.
그 이유는 a값을 초기화 하지 않았기 때문인데 이는 메모리의 공간을 할당만 받은 상태입니다.
메모리에 있는 공간을 아무거나 할당받은 개념이기 때문에 찌거기 데이터도 같이 오게 되고
초기화를 진행해줘야 이 변수를 사용할 수 있는 것입니다.
그럼 이 얘기를 왜 했냐 싶을수도 있지만 만약 계속 변하는 수의 개념이었다면 오류가 나오는게 정상일까요?
그리고 계속 변하는 수라면 데이터 타입을 지정해줘야하는 이유는 무엇일까요?
이것으로 우리는 변수를 항상 바뀌는 수가 아니라 메모리에서 할당받은 공간의 개념이라는 것을 알 수 있었습니다.
오늘은 간단하게 제가 알고 있는 생각하는 변수의 개념을 마구잡이로 뱉어봤습니다.
이 글을 읽고 질문이 있다면 댓글로 작성해주시고 다음에는 더 정리된 글로 뵙겠습니다.
그리고 틀린 개념이 있다면 지적해주시면 감사하겠습니다!
'기초 개념' 카테고리의 다른 글
[GIT] Git Merge 개념 -2- 3-Way Merge (0) | 2021.10.05 |
---|---|
[GIT] Git Merge 개념 -1- Fast-Forward (0) | 2021.10.02 |
세미콜론은 왜 필요한걸까? 인터프리터와 컴파일의 차이점 (0) | 2020.10.07 |
RAM은 왜 RAM일까? (0) | 2020.08.15 |