Golang

[Golang 시작하기 5] 포인터

여니여니_ 2020. 3. 20. 03:34

포인터

C언어나 C++에 포인터가 있듯이 Go에서 포인터가 있다. 

포인터는 대용량의 데이터를 다룰 때 유용하다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main
 
import (
    "fmt"
)
 
func main() {
    a := 20
    b := a
    a = 10
 
    fmt.Println("a 값: ", a, "a 주소: ", &a)
    fmt.Println("b 값: ", b, "b 주소: ", &b)
 
 
}
 
 

 

(결과)

 

 

&(앰퍼샌드)를 변수 앞에 붙여주면 그 변수의 주소를 볼 수 있다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main
 
import (
    "fmt"
)
 
func main() {
 
    c := 20
    d := &c
 
    fmt.Println("d 값: ", *d)
 
}
 

(결과)

d에는 c의 주소가 저장되어 있다. d 앞에 *(스타)를 붙여주면 그 주소에 있는 변수를 볼 수 있다. 

 

 

1
2
3
4
5
6
7
8
9
10
 
func main() {
 
    c := 20
    d := &c
    *d = 30
    fmt.Println(c, *d)
 
}
 

결과값: 30 30 

 

c의 주소를 저장한 d

*d=값 으로 c의 값을 변경할 수 있다.