Updated:

less than 1 minute read

개요

  • 로컬 변수 반환 가능
    • 스코프를 벗어나도 포인터를 가지고 있는 동안에는 유효


예제

  • 코드
     package main
        
     func func1(arg *int) {
     	*arg += 1
     }
        
     func func2() *int {
     	i := 1
     	println(i, &i)
        
     	return &i
     }
        
     func main() {
     	i := 1
     	pi := &i
     	println(i, *pi, pi)
        
     	println("------")
        
     	i = 1
     	func1(&i)
     	println(i)
        
     	println("------")
        
     	pi = func2()
     	println(*pi, pi)
     }
    
  • 실행 결과
     1 1 0xc000042760
     ------
     2
     ------
     1 0xc000042758
     1 0xc000042758