第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

關(guān)于 * 與 &

為什么需要用到這么多& *取地址呀?剛接觸go。我試了一下除了SetHash函數(shù)需要*其他地方都可以不用結(jié)果是一樣的。好吧其實就是太多然后弄不清楚真正的意義也不知道什么作用望解答!

正在回答

1 回答

如果我們要寫一個交換兩個整數(shù)的函數(shù):
func?swap(a?int,?b?int)??{
???t?:=?a
???a?=?b
???b?=?t
}

func?main()??{
???a?:=?1
???b?:=?2
???fmt.Println(a,?b)
???swap(a,?b)
???fmt.Println(a,?b)
}

程序運行之后,你會發(fā)現(xiàn)a和b根本沒有交換,因為傳遞給swap函數(shù)的只是值,相當(dāng)于對a和b的副本進(jìn)行了交換;
而如果用指針來實現(xiàn):
func?swap(a?*int,?b?*int)??{
???t?:=?*a
???*a?=?*b
???*b?=?t
}

func?main()??{
???a?:=?1
???b?:=?2
???fmt.Println(a,?b)
???swap(&a,?&b)
???fmt.Println(a,?b)
}
結(jié)果才是我們想要的。
因為要對傳遞給函數(shù)的變量進(jìn)行修改,所以要用指針。


2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

關(guān)于 * 與 &

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號