Go 언어 포인터 대하여 배워보기

오늘은 Go 언어의 포인터에 대하여 작성하면서 배워보려 합니다.

package main

import (
	"reflect"
	"fmt"
)

func main() {
	a := 10
	b :=  &a
	fmt.Println(a)
	fmt.Println(reflect.TypeOf(b),b)
}

위 코드는 10이라는 변수의 주소를 포인터에 저장하여 출력하는 예제입니다.

package main

import (
	"fmt"
)

func main() {
	var nilPtr *int
	fmt.Println(nilPtr)
}

포인터만 준비하고 아직 초기화는 안된 상태로 만들어 둘 수 있습니다.

package main

import (
	"fmt"
)

func main() {
	v := 10
	ptr := &v
	fmt.Println(*ptr)
}

포인터가 가리키는 값을 나타낼 때는 위와 같이 나타냅니다.

package main

import (
	"fmt"
)

func main() {
	v2 := 10
	ptr2 := &v2
	*ptr2++
	fmt.Println(*ptr2)
}

포인터가 가리키는 변수의 값을 증가시키려면 ++를 이용합니다.

package main

import (
	"fmt"
)

func main() {
	v3 := 10
	ptr3 := &v3
	*ptr3 = 20
	fmt.Println(*ptr3)
}

포인터가 가리키는 값에 대입할 수 있습니다.

package main

import (
	"reflect"
	"fmt"
)

func main() {
	arr := [3]int{1,2,3}
	arrPtr := &arr
	fmt.Println(arrPtr)
}

배열을 포인터로 가리킬 수 있습니다.

Written on September 16, 2018