溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

golang 指針

發(fā)布時(shí)間:2020-06-19 20:30:46 來(lái)源:網(wǎng)絡(luò) 閱讀:470 作者:欺世 欄目:開(kāi)發(fā)技術(shù)

指針


1、簡(jiǎn)單的定義一個(gè)指針

package main

import "fmt"

func main(){
	var p *int
	i :=2
	p = &i
	fmt.Println("memory address i:",p)
}
//執(zhí)行結(jié)果:
memory address i: 0xc42000a2e0


2、打印指針的值

package main

import "fmt"

func main(){
	var p *int
	i :=2
	p = &i
	fmt.Println("memory address i:",p)
	fmt.Println(*p)
}
//執(zhí)行結(jié)果:
memory address i: 0xc42000a2e0
2

3、指針賦值

package main

import "fmt"

func main(){
	var p *int
	i :=2
	p = &i
	fmt.Println("memory address i:",p)
	fmt.Println(*p)
	*p = 3
	fmt.Println(*p)
	fmt.Println(i)
}
//執(zhí)行結(jié)果:
memory address i: 0xc42000a2e0
2
3
3    //我們發(fā)現(xiàn)*p 和 i的值都變了,因?yàn)橹羔樀刂肥且粋€(gè)。

4、指針值拷貝與指針值更改

package main

import "fmt"


func changValue(x int){
	x = 20
}

func changValueNow(x *int){
        *x = 20
}



func main(){
	var p *int
	i :=2
	p = &i
	fmt.Println("memory address i:",p)
	fmt.Println("memory address p:",&i)
	fmt.Println(*p)
	*p = 3
	fmt.Println(*p)
	fmt.Println(i)
	changValue(i)
	fmt.Println("i =",i)
	changValueNow(&i)
	fmt.Println("now i:",i)
}
//執(zhí)行結(jié)果:
memory address i: 0xc42000a2e0
memory address p: 0xc42000a2e0
2
3
3
i = 3          //傳過(guò)去3,改為20,打印i還是3 說(shuō)明這種只是值拷貝并沒(méi)更改本身
now i: 20      //傳過(guò)去一個(gè)指針地址,將地址值改為20,打印i是20,傳遞指針內(nèi)存地址修改將改變指針的值。

5、指針申明

package main

import "fmt"


func changValue(x int){
	x = 20
}

func changValueNow(x *int){
        *x = 20
}



func main(){
	var p *int
	i :=2
	p = &i
	fmt.Println("memory address i:",p)
	fmt.Println("memory address p:",&i)
	fmt.Println(*p)
	*p = 3
	fmt.Println(*p)
	fmt.Println(i)
	changValue(i)
	fmt.Println("i =",i)
	changValueNow(&i)
	fmt.Println("now i:",i)

	pj := new(int)  //使用new 創(chuàng)建一個(gè)int型的指針
	changValueNow(pj)
	fmt.Println("pj = ",*pj)
}
//執(zhí)行結(jié)果:
memory address i: 0xc42000a2e0
memory address p: 0xc42000a2e0
2
3
3
i = 3
now i: 20
pj =  20

6、golang中沒(méi)有指針的運(yùn)算操作。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI