作者DJWS (...)
看板C_and_CPP
標題Re: [問題] 問一題面試可能會考的考題
時間Fri Jan 15 16:52:20 2010
程式語言對參數的處理方式,有許多種方式,
不同的程式語言中有不同的處理方式:
(關鍵字:programming language evaluation strategy)
call by value
call by reference
call by name
call by need
......
僅以C++的函式語法來看,C++傳遞參數的語法可以分為幾種不同的方式,
不過這比較像是口語化的說法,不是什麼專有名詞:
pass by value
pass by pointer (address)
pass by reference
return by value
return by pointer (address)
return by reference
上面跟下面是沒什麼關係的兩件事,
不過很多人都把這些名詞混著用,
所以常常有誤解。
最後得提一下,C只有call by value,C++只有call by value和call by reference兩種。
另外Java只有call by value。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.211.0.80
※ 編輯: DJWS 來自: 218.211.0.80 (01/15 16:53)
※ 編輯: DJWS 來自: 218.211.0.80 (01/15 16:57)
※ 編輯: DJWS 來自: 218.211.0.80 (01/15 17:01)
→ akasan:就某種層面來說只有call by value這種東西 01/15 17:03
※ 編輯: DJWS 來自: 218.211.0.80 (01/15 17:05)
→ LPH66:我個人倒是認為 Java 全部都是 call by value 01/15 17:05
→ LPH66:那些東西其實可以說是 "call by value (of the reference)" 01/15 17:05
→ DJWS:真的是多講多錯...謝謝樓上板友提醒,已改正。 01/15 17:06
→ LPH66:哎呀慢一步 XD 01/15 17:06
→ DJWS:哈哈...心意到就好 :D 01/15 17:08
推 Bencrie:其實都是推入堆疊 XD 01/15 17:52
→ DJWS:推入堆疊也有不同方式...關鍵字calling conventions XD 01/15 17:56