- GO取值和取指针的操作
*是取值,即获取指针指向的值;&取指针,即获取变量的地址
package main
import "fmt"
func main() {
// 取值 start
var a int = 666
var b int = a // a是值传递,b取到的是a的值
fmt.Println(b) // 输出:666
// 取值 end
// a的类型 start
fmt.Printf("a的类型为:: %T\n", a) // a的类型为:: int
// a的类型 end
// 取指针 start
var c *int = &a // c取到的是a的地址,c是一个指针,指向a的地址
fmt.Println(c) // 输出:0xc00000a0b8
// 取指针 end
// 指针类型 start
fmt.Printf("c的指针类型为:: %T\n", c) // c的指针类型为:: *int
// 指针类型 end
// 通过指针取值 start
fmt.Println(*c) // 输出:666
// 通过指针取值 end
// 修改指针指向的值 start
*c = 789
fmt.Println(*c) // 输出:789
// 修改指针指向的值 end
// 指针作为参数传递并参与运算
sum1(c)
}
func sum1(params *int) {
fmt.Println(*params) // 输出:789
*params = *params + 1
fmt.Println(*params) // 输出:790
}