指標變數
-
基本概念
- &a,
代表 a 變數的記憶體地址
- p,
代表一個控制程式碼引用(控制程式碼由例項資料指標與例項型別指標兩部分組成)
,控制程式碼的好處是,當例項資料值改變時,不需要改動例項資料指標與例項型別指標的引用 - *p,
代表控制程式碼引用中,指向例項資料的指標(引用)
- *type,
代表例項型別指標,一般宣告一個指標變數後就不會改動型別
- &a,
-
指標記憶體佈局分析
-
程式碼示例
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
}