Golang 정리(3)-포인터

강다빈·2026년 7월 10일

golang 공부

목록 보기
4/11
  • 포인터: 데이터가 저장된 메모리 주소를 담는 변수를 의미
  • 메모리 주소: 데이터가 저장된 메모리의 주소
  • 인스턴스: 구조체에 실제 데이터 값을 담은 데이터 덩어리
# 구조체
type Obj struct { Name string, Age int }

# 인스턴스
{"Beckham", 11}

1. 포인터 타입 (*int)

var ptr *int

*이 int, string 같은 타입 이름 앞에 붙을 때 포인터 타입을 의미함.
이는 해당 타입의 데이터의 메모리 주소를 담는 변수임.

2. 주소 반환 (&age)

age := 11

// age라는 값이 저장된 메모리 주소(예: 0xc0000a4000)를 구해서 ptr에 넣음
ptr := &age

11이라는 데이터가 담긴 age 변수의 메모리 주소를 &age로 가지고 올 수 있음

3. 역참조 (*ptr)

age := 11

var ptr *int
ptr = &age

fmt.Println(ptr)  // 출력: 0xc0000a4000
fmt.Println(*ptr) // 출력: 11

*이 포인터 변수에 붙을 때 역참조를 의미함.
포인터 변수의 주소의 인스턴스를 가져옴.

전체 코드

age := 11

var ptr *int
ptr = &age

fmt.Println(ptr) // 출력: 0xc0000a4000
fmt.Println(*ptr) // 출력: 11

*prt = 200
fmt.Println(*ptr) // 출력: 200
profile
하루살이

0개의 댓글