Go中取址符(&)取的到底是記憶體地址,還是指標變數?
** 最近在書上看到一個例子:**
package main
import "fmt"
func main() {
var a = [3]int{1, 2, 3}
var b = &a // & 應該是取址符,變數b就應該是陣列a在記憶體中的地址,那麼為什麼b[1]可以自加
b[1]++
fmt.Println(a, *b)
}
** 對於取址符有了一些疑問,根據這個例子,單獨寫了一段 demo 程式碼:**
package main
import "fmt"
func main() {
var a = []int{1,2,3} // or var a = 3
var b = &a
fmt.Println(b)
}
** 經過測試 dmeo 程式碼中,如果變數 a 為基本型別(例如:int、float、string 等),則變數 b 返回的就是變數 a 在記憶體中的地址,但是如果變數 a 為複合型別(例如:陣列、切片),則變數 b 返回的是指標變數,且可以當作複合型別的變數直接使用(例如:b[1]++),為什麼 Go 中的&符返回的東西不一致呢?**
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 指標:存放記憶體地址的變數指標記憶體變數
- C語言第九周作業(指標變數,記憶體訪問,取址,空指標)C語言指標變數記憶體
- 使用Go實現健壯的記憶體型快取Go記憶體快取
- CPU快取記憶體快取記憶體
- 簡單的記憶體取證記憶體
- Go指標探秘:深入理解記憶體與安全性Go指標記憶體
- go中的記憶體逃逸Go記憶體
- kali記憶體取證-volatility記憶體
- 記憶體快取選型記憶體快取
- 多核cpu、cpu快取記憶體、快取一致性協議、快取行、記憶體快取記憶體協議
- RAM是記憶體還是外存記憶體
- Go 語言指標符號 *和&Go指標符號
- 在 Go 專案中基於本地記憶體快取的實現及應用Go記憶體快取
- MRAM快取記憶體的組成快取記憶體
- Java中的類(好似結構體) 物件(好似指標變數)變數 方法Java結構體物件指標變數
- iOS 除SDWebImage之外清理記憶體中快取iOSWeb記憶體快取
- C++ 引用和指標:記憶體地址、建立方法及應用解析C++指標記憶體
- GO語言————6.12 通過記憶體快取來提升效能Go記憶體快取
- 到底是先更新資料庫還是先更新快取?資料庫快取
- C++中結構體是使用例項還是指標C++結構體指標
- Go 的記憶體對齊和指標運算詳解和實踐Go記憶體指標
- const修飾符的使用(修飾結構體指標,引用外部的const 變數)結構體指標變數
- BI取數,地獄還是天堂?
- 如何使用 Go 獲取你的 IP 地址Go
- CPU快取和記憶體屏障快取記憶體
- docker部署redis快取記憶體DockerRedis快取記憶體
- 如何獲取EMMC記憶體大小記憶體
- 談談CPU快取記憶體快取記憶體
- django 快取表格到記憶體Django快取記憶體
- 指標變數指標變數
- 深入理解Go系列一之指標變數Go指標變數
- int型別是無法通過&獲取地址的,那物件裡的*int應該如何賦值型別物件賦值
- Java記憶體快取-通過Google Guava建立快取Java記憶體快取GoGuava
- Go實戰 | 基於本地記憶體的快取的應用及實現Go記憶體快取
- C++ 指標動態記憶體分配C++指標記憶體
- go語言引數傳遞到底是傳值還是傳引用Go
- project中的堆疊記憶體,記憶體地址引用,gc相關問題Project記憶體GC
- z-library映象地址,如何獲取最新網址(2024.10.20)