Go语言的变量、地址、指针

package main

import "fmt"

// 注意参数是: 变量名 *类型, &a代表指针赋值, *int代表指针类型, *a代表指针解值, 这是一套生态系统
func changeNumX(a *int) int {
   *a = 1
   return *a
}

func main(){

   a := 10
   // 注意先命名普通变量然后传递地址
   a = changeNumX(&a)
   fmt.Println(a)

}

// 指针地址、指针类型和指针取值
// 提示:变量、指针和地址三者的关系是,每个变量都拥有地址,指针的值就是地址。
// ptr := &v    // v 的类型为 T
//其中 v 代表被取地址的变量,变量 v 的地址使用变量 ptr 进行接收,ptr 的类型为*T,称做 T 的指针类型,*代表指针。

// 取地址操作符&和取值操作符*是一对互补操作符,&取出地址,*根据地址取出地址指向的值。
//变量、指针地址、指针变量、取地址、取值的相互关系和特性如下:
//对变量进行取地址操作使用&操作符,可以获得这个变量的指针变量。
//指针变量的值是指针地址。
//对指针变量进行取值操作使用*操作符,可以获得指针变量指向的原变量的值。

  

 

posted @ 2020-08-14 16:40  Adamanter  阅读(258)  评论(0)    收藏  举报