-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpointer.go
More file actions
38 lines (31 loc) · 917 Bytes
/
Copy pathpointer.go
File metadata and controls
38 lines (31 loc) · 917 Bytes
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
32
33
34
35
36
37
38
package main
import "fmt"
import "reflect"
func main() {
i := 10
// 方式1
var intPtr *int = &i
fmt.Println("pointer value:", intPtr, " point to: ", *intPtr)
fmt.Println("type of pointer:", reflect.TypeOf(intPtr))
// 方式2
intPtr2 := &i
fmt.Println(*intPtr2)
fmt.Println("type of pointer:", reflect.TypeOf(intPtr2))
// 方式3
var intPtr3 = &i;
fmt.Println(*intPtr3)
fmt.Println("type of pointer:", reflect.TypeOf(intPtr3))
// 方式4
var intPtr4 *int
intPtr4 = &i
fmt.Println(*intPtr4)
fmt.Println("type of pointer:", reflect.TypeOf(intPtr4))
// 不赋值的时候,默认值为nil
var intPtr5 *int
fmt.Println("intPtr5==nil:", intPtr5==nil)
array := [3]int{1,2,3}
var arrayPtr *[3]int = &array
for i:=0; i<len(array); i++ {
fmt.Printf("arrayPtr[%d]=%d\n", i, arrayPtr[i])
}
}