深刻理解Go系列一之指針變量

指針變量

  1. 基本概念佈局

    • &a,表明 a 變量的內存地址
    • p,表明一個句柄引用(句柄由實例數據指針與實例類型指針兩部分組成) ,句柄的好處是,當實例數據值改變時,不須要改動實例數據指針與實例類型指針的引用
    • *p,表明句柄引用中,指向實例數據的指針(引用)
    • *type,表明實例類型指針,通常聲明一個指針變量後就不會改動類型
  2. 指針內存佈局分析
    指針

  3. 代碼示例code

package main

import "fmt"

func main() {
	/*[01] 指針地址聲明;
	  並將a變量內存地址做爲p 句柄引用 */
	var a = 100
	var p *int = &a
	fmt.Println(a) //100
	fmt.Println(p) //0xc000126010

	/*[02] 更改指針實例數據的值
	  句柄引用不變*/
	*p = 200
	fmt.Println(a) //200
	fmt.Println(p) //0xc000126010

	/*[03] 實例數據賦值給新變量b;
	  實例數據指針賦值給新變量c;*/
	b := a
	c := *p
	fmt.Println(p)  //0xc000126010
	fmt.Println(&b) //0xc000126030
	fmt.Println(&c) //0xc000126038

}
相關文章
相關標籤/搜索