변수를 선언 하면 메모리를 할당 받습니다. (경우에 따라) 스택이나 힙 메모리 주소의 영역을 그 변수의 것이라고 말하는 것 입니다.
선언만 하는 경우 그 변수는 이미 그 메모리에 존재하던 쓰래기 값들을 가지고 있게 됩니다. 따라서 자기가 원하는 값을 넣어 주어 초기화를 해야 합니다.
예를 들어 당신이 일제시대 악덕 지주라면, 메모리 할당은 일본 관청에서 '주인 없다고 하기로 한' 땅을 서류상으로 받은 것이고, 막상 가 보면 땅의 권리는 박탈당했지만 거기 살고 있던 사람, 집 등이 남아 있는 것 입니다. 초기화는 남아 있는 것을 밀어버리고 자신이 원하는 집 등을 넣는 것이고요.
C, Cpp의 경우 스택은 흔히 선언하는 변수들, 함수에서 선언하는 변수 등이 저장됩니다. 힙은 malloc나 new를 통해 할당하는 변수들 입니다. 간단히 설명하면 필요한 메모리 크기를 사전에 알 수 있는 경우 스택, 그렇지 않은 경우 힙을 씁니다.