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
      }
      

  目录