변수: 언제든지 바뀔 수 있는 데이터가 담기는 공간
이유는 2가지다.
1. 자유로운 데이터 변환을 위해
숫자는 8byte(=64bit)로 메모리량이 동일하지만
문자는 영어(1byte), 한글(2byte)로 메모리량이 달라질 수 있다.
만약 하나의 메모리에 변수의 값을 저장해버린다면
문자와 같이 메모리량이 가변적인 데이터라면 메모리의 공간을 늘리기 위해
그 다음 데이터를 하나씩 뒤로 밀어야 공간을 확보할 수 있다.
이런 방식은 매우 비효율적이다.
2. 메모리의 효율적 관리를 위해
만약 같은 값을 저장하는 여러 개의 변수가 있다고 치자.
변수 영역에 값을 바로 할당해버린다면
숫자는 8byte를 차지하므로, 8byte * n 만큼의 메모리를 차지하게 된다.
반대로 변수 영역에는 값을 바로 저장하지 않고,
값을 저장한 메모리의 주소를 참조하게 해보자.
메모리의 주소 값을 2byte라고 가정한다면
(2byte * n) + 8byte(=값이 저장된 영역)와 같이 계산되므로 더 효율적이다.