우리는 지금까지 배워온 변수를 지정하는 방법은 아래 코드와 같이 변수를 지정해 줬다.
int a = 10;
그렇다면 이 변수는 어디에 저장이 될까?
메모리에 대해 깊게 다른 컨텐츠로 다루겠지만 포인터 부분에서 메모리에 대해 간단하게 알고 가야한다.
그 이유는
포인터에 대한 이해가 메모리 부분에서 어렵기 때문이다.
다시 본론으로..
우리가 변수를 지정하면 변수는 메모리에 일정 공간을 확보하고 그곳에서 원하는 값을 저장하고 불러오는 방식이다.
그렇다면
도대체 메모리 어느부분에 저장이 되는지 어디서 불러오는지 궁금증이 생길것이다.
아래 코드를 사용해서 메모리에 할당된 변수 메모리 주소를 확인할 수 있다.
- %p 서식 지정자를 사용하 16진수로 출력하고, & 주소 연산자를 변수 앞에 사용하면 변수의 메모리 주소를 16진수로 확인 할 수 있다.
우리는 변수가 저장된 메모리 주소를 출력해 보았다.
이번에는 포인터 변수를 선언해보자
포인터 변수는 쉽게 설명하면 변수가 메모리 주소에 할당 되고 포인터 변수가 그 메모리 주소를 가리키는 것이다.
그림과 같이 numPtr 포인터 변수가 변수 num1의 메모리 주소를 가리키게 되는 방식이다.
그림이 이해가 안간다면 코드로 보자
출력을 하면 위 그림과 같이 같은 메모리 주소 16진수 값이 나온다.
코드를 해석해 보면
- 포인터 변수를 선언해줄때는 *(애스터리스크)를 자료형 뒤에 붙여준다.
- 포인터 변수를 선언 후 &가 붙은 변수의 메모리 주소를 포인터 변수에 저장한다.
- 포인터와 num1의 메모리 주소는 같다는 의미이다.
'프로그래밍 > C 기본문법' 카테고리의 다른 글
UNIT 34.6 이중 포인터 사용하기 (0) | 2021.03.08 |
---|---|
UNIT34.2 역참조 연산자 (0) | 2021.03.08 |
UNIT 10. 상수 사용하기(수정중) (2) | 2021.02.21 |
UNIT 9. 문자 자료형 사용하기 (0) | 2021.02.20 |
UNIT. 8 실수 자료형 (0) | 2021.02.20 |