[Go] Pointer - 7

Hyeseong·2021년 5월 14일
0

Go Tutorial

목록 보기
7/11

Low Level Programing에서 메모리에 접근하고 해당 주소와 값을 확인하며 다른 해당 주소를 참조하는 방법을 확인해 볼게요.

키워드 &,*

앤퍼선트와 에스터리스크가 이를 가능하게 해주는 특수문자에요.

본론

아래 사진1의 예시를 볼게요.
10, 2가 이쁘게 출력되네요.

<사진1>

메모리 주소 확인하기

&기호를 이용해서 해당 변수의 메모리 주소를 확인했어요.

<사진2>

메모리 주소를 다른 변수에 할당

우항에 &기호를 변수 앞에 두고 할당하면 끝이에요.
콘솔에 찍힌 결과는 동일하조. 하지만 호출한 방식의 차이점과 무엇을 의미하는지 잘 파악해야해요.

메모리 주소가 참조하는 값을 어떻게 확인?

* 기호를 변수 앞에 붙이면 되요.

<사진3>

아래는 더 흥미롭게 변수가 다른 변수의 주소값을 갖고 있으며 더군다나 이를 see through하여 보니 2라는 정수 값을 확인 할 수 있으며 실제 b라는 변수의 주소를 확인하면 별도로 메모리에 올라와 있는 것도 확인 가능해요.
<사진4>

a변수의 값을 변경하면?

처음 변수 a의 값인 2를 b라는 변수 정의 이후 바로 10으로 바꿔버리면 어떻게 될까요?

<사진4>

한마디로 큰 틀의 변화는 없으며 알맹이(2->10)만 쏙~ 바뀌고 나머지 주소가 그대로 유지되기에 b가 see throuhg하여 보는 값도 10이며 주소는 기존 그대로 동일한 상태입니다.

*b를 이용해서 참조하는 변수의 값 변경

우항에 정수 222 두고, 좌항에 *b를 두면 변수 a의 값이 변경되요.

<사진5>

profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글