亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串指針

字符串指針

Go
慕勒3428872 2021-06-15 05:00:04
考慮以下程序(http://play.golang.org/p/IbAstvudtE):package mainimport (    "fmt")func changeStringValueNotOK(dest *string, src string) {    dest = &src}func changeStringValueOK(dest *string, src string) {    *dest = src}func main() {    a := "Hello"    b := "World"    changeStringValueNotOK(&a, b)    fmt.Println(a) // still "Hello"    changeStringValueOK(&a, b)    fmt.Println(a) // now "World"}我的目標是調用一個函數并更改字符串的值。與第二個功能一起工作正常,但不適用于第一個功能。問:是什么意思*dest = src相比dest = &src?我猜前者是“dest 的內容現在是 src”,后者是“更改 dest 變量,使其現在指向 src 的地址”,它丟棄了以前的值,但不是 a. 但即使我是對的,我也不明白這是如何*dest = src運作的。我希望我的問題不是太模糊。
查看完整描述

2 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

*dest = src

is:將 指向的值設置dest為 中的值src。所以它是有效的。

dest = &src

is:將 的值設置dest為 的地址src。由于 dest 是changeStringValueNotOK更改的形式參數(僅針對指針,而不針對被指針方)僅在本地可見。由于更改后的值并未真正使用,因此它的總效果是無操作。


查看完整回答
反對 回復 2021-06-28
  • 2 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號