728x90

우리는 지금까지 배워온 변수를 지정하는 방법은 아래 코드와 같이 변수를 지정해 줬다.

int a = 10;

그렇다면 이 변수는 어디에 저장이 될까?

 

메모리에 대해 깊게 다른 컨텐츠로 다루겠지만 포인터 부분에서 메모리에 대해 간단하게 알고 가야한다.

 

그 이유는

 

포인터에 대한 이해가 메모리 부분에서 어렵기 때문이다.

 

다시 본론으로..

 

우리가 변수를 지정하면 변수는 메모리에 일정 공간을 확보하고 그곳에서 원하는 값을 저장하고 불러오는 방식이다.

 

그렇다면

 

도대체 메모리 어느부분에 저장이 되는지 어디서 불러오는지 궁금증이 생길것이다.

 

아래 코드를 사용해서 메모리에 할당된 변수 메모리 주소를 확인할 수 있다.

- %p 서식 지정자를 사용하 16진수로 출력하고, & 주소 연산자를 변수 앞에 사용하면 변수의 메모리 주소를 16진수로 확인 할 수 있다. 

우리는 변수가 저장된 메모리 주소를 출력해 보았다.

 

 

이번에는 포인터 변수를 선언해보자

 

포인터 변수는 쉽게 설명하면 변수가 메모리 주소에 할당 되고 포인터 변수가 그 메모리 주소를 가리키는 것이다.

그림과 같이 numPtr 포인터 변수가 변수 num1의 메모리 주소를 가리키게 되는 방식이다.

 

그림이 이해가 안간다면 코드로 보자

출력을 하면 위 그림과 같이 같은 메모리 주소 16진수 값이 나온다.

 

코드를 해석해 보면

- 포인터 변수를 선언해줄때는 *(애스터리스크)를 자료형 뒤에 붙여준다.

- 포인터 변수를 선언 후 &가 붙은 변수의 메모리 주소를 포인터 변수에 저장한다.

- 포인터와 num1의 메모리 주소는 같다는 의미이다.

 

728x90

+ Recent posts