| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- emit
- 행렬
- container
- PROPS
- App.vue
- CDN
- websocket
- graceful shutdown
- localStorage
- goroutine
- cli
- toggle
- Server
- Vue.js
- Matrix
- TODO
- reactivity
- URL
- method
- todo-list
- golang
- component
- Dictionary
- goroutines
- map
- Vue
- go
- SFC
- channel
- Refactoring
Archives
- Today
- Total
ksundev 님의 블로그
Pointers 🏷️ 본문
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 |