Go結構體指標

2021-10-05 18:56:04 字數 1613 閱讀 3268

package main

import

"fmt"

//結構體指標

/*資料型別: int , float , bool , string , array

引用型別: slice , map , function , pointer

*//*

建立指標:

new() , 不是nil,空指標

指向了新分配的型別的記憶體空間,裡面儲存的是零值.

*///1.結構體是值傳遞

func

main()

fmt.

println

(p1)

// fmt.

printf

("%p,%t\n"

,&p1,p1)

//0xc0000bc040,main.person

p2 := p1

fmt.

println

(p2)

// fmt.

printf

("%p,%t\n"

,&p2,p2)

//0xc0000bc100,main.person

p2.name =

"狗子"

fmt.

println

(p2)

// fmt.

println

(p1)

////2.定義結構體指標

var pp1 *person

pp1 =

&p1 fmt.

println

(pp1)

//& fmt.

printf

("%p,%t\n"

,pp1,pp1)

//0xc0000bc040,*main.person

fmt.

println

(*pp1)

////(*pp1).name = "張三"

pp1.name =

"張三"

fmt.

println

(pp1)

//& fmt.

println

(p1)

////使用new(),go語言中專門用於建立某種型別的指標的函式

pp2 :=

new(person)

fmt.

printf

("%t\n"

,pp2)

//*main.person

pp2.name =

"李四"

pp2.age =

20 pp2.*** =

"男" pp2.address =

"中國"

fmt.

println

(pp2)

//&}

type person struct

結果:

0xc000076040

,main.person

0xc000076100

,main.person

&0xc000076040

,*main.person

&*main.person

&

go語言 結構體及結構體指標

結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合,也叫結構。可以理解為其他程式語言中的類 結構體既可以定義在函式內,也可以定義在函式外,函式外為全域性結構體可以跨包訪問 前提是結構體首字母大寫 結構體變數是值型別,可以使用fmt.printf p 結構體變數 來檢視其記憶體...

Go 結構體,結構體指標和方法

結構體 講乙個或多個變數組合到一起形成新的型別,這個型別就是結構體,結構體是值型別 定義結構體和賦值 learn go main.go package main import fmt type people struct func main fmt.printf p peo 0x110040f0 賦...

go 結構體指標方法與結構體方法的區別

package main import fmt type person struct func v person modifyname name string func main xiaoming.modifyname 小李 fmt.println xiaoming.name 輸出結果如下 c us...