→ james732:不要傳區域變數的address就好 這樣寫它都會複製一份 06/19 02:07
推 QQ29:如果函式長這樣 int& fun(){int b return b;} int c=func(); 06/19 02:37
→ QQ29:這種寫法會有安全性的問題嘛 我最後c會copy一份不是嘛? 06/19 02:37
→ QQ29:還是說copy之前就有機會 b值就不見了? 06/19 02:38
推 legnaleurc:non-static local reference 通常 compiler 會有警告 06/19 02:55
→ legnaleurc:考慮 int & c = func(); 的狀況 06/19 02:56
→ legnaleurc:甚至是 func() = c; 06/19 02:56
推 zlw:二樓寫法func()優先權比較高會先執行,最後把b的值0xcccccccc 06/19 03:36
→ zlw:mov到暫存器eax去,就完成return b;動作。然後c從eax接受該值 06/19 03:37
→ zlw:所以return的東西實際上是到eax去取,而不是到b的記憶體位置取 06/19 03:38
→ zlw:當然函數內部是不會在b消失之前,都還沒讓return b放到eax發生 06/19 03:39
→ davidyu:可以compile就是正確啊,只是不見得是你要的結果 06/19 04:44