目錄
簡介
宣告
空指標
零值指標
宣告并初始化
指標的指標
記憶體
函式傳遞指標
全部代碼
結果截圖
簡介
- 取地址符是&
- 指標保存的是地址,地址里的資料才是真正的值,使用*來獲取值
int系列、float系列、boo;、string、陣列、結構體struct都有指標,一般在堆疊
指標、切片、管道、介面、Map是參考型別,一般在堆,GC回收
宣告
空指標
Go中的空指標是nil
var ptr *int
零值指標
func new(Type) *Type
內建函式new分配記憶體,其第一個實參為型別,而非值,其回傳值為指向該型別的新分配的零值的指標,
ptr1 := new(int)
宣告并初始化
i := 10
ptr2 := &i
ptr2存的是i的地址
指標的指標
pptr := & ptr2
pptr存的是ptr2的地址
記憶體
以前面的指標和指標的指標為例

記憶體結果見后序截圖
函式傳遞指標
func plus(p *int) {
(*p)++
}
plus(ptr2)
全部代碼
package main
import "fmt"
func plus(p *int) {
(*p)++
}
func main() {
//------------宣告指標------------
//---空指標---
var ptr *int
//---零值指標---
ptr1 := new(int)
fmt.Println("ptr ptr1 *ptr1,:",ptr,ptr1,*ptr1)
//-----------宣告并初始化----------
i := 10
ptr2 := &i
fmt.Printf("i的地址&i:%v,i的值:%v,ptr2的地址&ptr2:%v,ptr2的值:%v,ptr2指向的值:%v\n",&i,i,&ptr2,ptr2,*ptr2)
//-------------指標的指標----------
pptr := & ptr2
fmt.Printf("pptr的地址&pptr:%v,pptr的值pptr:%v,pptr指向的值*pptr:%v,ptr2的地址&ptr2:%v,ptr2的值:%v,ptr2指向的值:%v\n",&pptr,pptr,*pptr,&ptr2,ptr2,*ptr2)
//-------------函式形參指標--------
plus(ptr2)
fmt.Println(i)
}
結果截圖

更多Go相關內容:Go-Golang學習總結筆記
有問題請下方評論,轉載請注明出處,并附有原文鏈接,謝謝!如有侵權,請及時聯系,如果您感覺有所識訓,自愿打賞,可選擇支付寶18833895206(小于),您的支持是我不斷更新的動力,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/279313.html
標籤:區塊鏈
