當你從 go 中的函數返回一個新對象時,我很難理解到底發生了什么。我有這個func createPointerToInt() *int { i := new(int) fmt.Println(&i); return i;}func main() { i := createPointerToInt(); fmt.Println(&i);}打印返回的值是0x1040a1280x1040a120我希望這兩個值相同。我不明白為什么會有 8 字節的差異。在我看到的等效 C 代碼中:int* createPointerToInt() { int* i = new int; printf("%#08x\n", i); return i;}int main() { int* r = createPointerToInt(); printf("%#08x\n", r); return 0;}返回的地址是一樣的:0x82180080x8218008我在這里錯過了一些非常明顯的東西嗎?任何澄清將不勝感激!
golang 從函數返回對象
慕碼人8056858
2021-09-20 09:03:33