Go 函數中的指標賦值:為什麼結果會不同?
在 Go 中將指標傳遞給函數時,了解如何執行指標賦值至關重要使用指標及其對原始值的影響。本討論圍繞著一個程式碼片段展開,該程式碼片段將指標傳遞給結構體 Test,旨在修改其 Value 欄位。
第一個程式碼片段,儘管嘗試透過將新的 Test 結構體指派給指標來變更 Value 欄位(*p = Test{4}),無法變更實際值。這是因為它只是重新分配指標變數 p,而不是指向的值。 f()函數中的p變數獨立存在,對main()中p變數指向的值沒有影響。
相反,第二個程式碼片段,其中p.Value明確地設定為 4,成功修改 Value 欄位。這是因為 運算子取消引用指針,從而允許存取和修改實際指向的值。
作為補充說明,可以透過傳遞來修改儲存在 main() 函數的指標變數中的位址它的位址 (*) 到 f() 函數。然而,與使用 p.Value.
直接修改指向值相比,這種方法效率較低且不方便免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3