minky5576   1년 전

new 연산자를 이용해서 동적할당을 사용할 수 있는데

a 두개를 출력하면 주소값이 나옵니다.

그냥 a는 40이라는 값에 주소라는 거일테고

&a는 포인터변수의 주소라는 말인데

여기서 저는 이해가 안가는게 이 40은 어디 변수에도 선언이 되지 않았는데 어떻게 주소가 있는거죠?

제가 이해한거로라면 new int는 메모리에 시작주소이고 이 시작주소를 포인터변수 a에다 넘겨준다는 말인건가요>?

zenith82114   1년 전

6번 줄에서 다음 3가지 일이 전부 일어납니다.

(1) a라는 int형 포인터가 선언됨

(2) int형 1개분의 메모리 공간이 할당됨

(3) (2)에서 할당된 공간의 주소가 a의 값으로 저장됨(= 할당된 공간을 a가 가리킴)

7번 줄은 a가 가리키는 공간에 40이라는 값을 저장할 뿐, 주소와는 관계가 없습니다.

8번 줄에서는 a가 가리키는 공간의 주소값, 9번 줄에서는 a 자신의 주소값이 출력됩니다.

minky5576   1년 전

감사합니다. 어느정도 이해가 됐네요

댓글을 작성하려면 로그인해야 합니다.