看板 C_and_CPP 關於我們 聯絡資訊
String fun() { String str="abc"; return str; } main { String strM=fun(); } 請問上面的作法為何可行? 在fun()內的str不是區域變數嗎? 生命週期應該再函式結束就消失不是嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.30.2 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1466312094.A.1CA.html
jerryh001: 是傳出str的值 不是那個物件 所以會複製出一個新string 06/19 13:22
Richun: String不要當成指標看 當成struct你會比較理解 06/19 15:46
ko27tye: call by value 06/19 16:26
wtchen: 看來十三誡要多說明一下 06/19 20:32
Caesar08: 這太新手了...,確定要放13誡? 06/19 22:00
wtchen: 我還以為是13誡沒講清楚 06/19 22:26
james732: 13誡不就是要給新手看的嗎?XD 06/19 22:52
tjjh89017: 老實說新手不一定看得懂13誡Orz 06/19 23:32
wtchen: 那至少要說哪裡看不懂才好補充阿.... 06/20 00:13
Caesar08: 難不成連變數要怎麼定義,for loop要怎麼用都要放進13誡 06/20 09:29
Caesar08: ? 06/20 09:29
wtchen: 也是 06/20 15:07
wtchen: 看來我想太多了 06/20 15:08
Frozenmouse: 再刻下去會從石板變石柱啊XD 06/20 16:10
jerryh001: 應該直接出一本書XD 06/20 16:55
iamstudent: 然後書名叫Effective C++ More More之類的 06/20 18:25
testPtt: 認真來說要從asm指令來講起 06/20 18:28
chehsunliu: 不懂給新手問有何不妥,不然什麼都一直誡誡誡就飽了 06/20 21:58
b0920075: 會誡的都是很基礎的吧...不規範版上大概就會跟中國貼吧 06/21 06:01
b0920075: 一樣到處都是非常基礎的問答 06/21 06:02