GO取指针和取值


  • 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
}

  目录