ksundev 님의 블로그

Pointers 🏷️ 본문

[개발] Go/기본문법

Pointers 🏷️

ksundev 2025. 6. 9. 18:29

Go의 포인터 (Pointer)

포인터란?

포인터는 메모리 주소를 저장하는 변수입니다. 변수의 값 자체가 아니라, 그 값이 저장된 메모리 위치를 가리킵니다.

기본 문법

 
go
var x int = 42
var p *int = &x    // p는 x의 주소를 저장
fmt.Println(*p)    // 42 출력 (p가 가리키는 값)

주요 연산자:

  • & : 주소 연산자 (address operator)
  • * : 역참조 연산자 (dereference operator)

이것들이 왜 필요할까? 다음 상황을 보자.

 

일반적인 상황에선 값이 복사된다.

 

b := a 를 한 순간의 a의 값이 "복사"되어 b의 주소에 저장된다.

 

"복사"를 원치 않는 경우 pointer를 활용하자

일어나는 일이 보이는가?

a의 주소가 b에 저장되고,

a값이 변경되어도 주소를 통해 접근할 수 있으므로 *b가 10으로 출력된다.

 

반대로,
*b를 통해 a의 값을 변경하는 것도 가능하다.

 

'[개발] Go > 기본문법' 카테고리의 다른 글

Maps  (0) 2025.06.10
Arrays and Slices  (0) 2025.06.10
If문과 Switch문  (4) 2025.06.09
Loop (반복문)  (0) 2025.06.01
Go의 함수  (1) 2025.05.31