深入理解Go系列一之指標變數

midSpring發表於2020-09-10

指標變數

  1. 基本概念

    • &a,代表 a 變數的記憶體地址
    • p,代表一個控制程式碼引用(控制程式碼由例項資料指標與例項型別指標兩部分組成) ,控制程式碼的好處是,當例項資料值改變時,不需要改動例項資料指標與例項型別指標的引用
    • *p,代表控制程式碼引用中,指向例項資料的指標(引用)
    • *type,代表例項型別指標,一般宣告一個指標變數後就不會改動型別
  2. 指標記憶體佈局分析

  3. 程式碼示例

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

}

相關文章