09 Golang指针

09指针

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main

import (
"fmt"
)

/*
指针类型:
var var_name * var-type
例:
var ip * int // 指向整形的指针变量
var fp * float32 // 指向浮点型的指针变量

空指针:nil,指针的默认值为nil
*/


/*
指针数组:这是一个数组,变量类型是指针类型的
var p [3] *int
*/


/*
二级指针:指向指针的指针
var a int
var p * int
var pp ** int
*/
func main(){
var a = [] int {1,2 ,3,}
var p [3] *int

for i := 0; i < len(a); i++{
p[i] = &a[i]
}
fmt.Println(a)
fmt.Println(p)
for i := 0; i < len(a); i++{
fmt.Print(*p[i], "=>", p[i], " ")
}

fmt.Println("\n%")
fmt.Printf("%%\n")
fmt.Print("%\n") //(MISSING)%,发现没有后续动词,格式化输出会出现此问题


// 多级指针
var b int
var bp * int
var bpp ** int

b = 4
bp = &b
bpp = & bp
fmt.Println(b, bp, bpp)
fmt.Println(*bp, *bpp)
fmt.Println(**bpp)
}