作者watermeter (水表)
看板C_and_CPP
標題[問題] C裡面call by value 的保存有什麼好處
時間Fri Jan 1 10:54:57 2016
最近寫C pointer
想到既然pointer可以讓程式跑更快
那當初為什麼不廢除原來的call by value
直接用pointer 的方式代替原來的運算就好了
保留call by value 的目的是什麼
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.6.148
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1451616900.A.4C2.html
1F:→ LPH66: 你知道傳指標也是 call by value 嗎? 01/01 11:23
2F:推 Hikkiaholic: 有時就是要copy兩份才不傷身體阿 像你這篇就copy兩份 01/01 12:48
3F:→ tsoahans: call by address只能對變數吧? 數值又不能取位址 01/01 13:27
4F:推 chuegou: 2F幽默www 這篇要指向上一篇www 01/01 13:52
5F:推 tjjh89017: C語言只有 call by value 01/01 14:21
6F:→ TobyH4cker: 這樣就能當作是local variable 01/01 14:49
7F:→ TobyH4cker: 還有當你傳多個int *卻只有讀沒有寫的需求時比int還慢 01/01 15:02
8F:→ TobyH4cker: 因為會再多一倍存取記憶體的時間,脫褲子放屁 01/01 15:03
9F:→ TobyH4cker: (此處以當int *不是指向array of int時) 01/01 15:05
10F:→ jaid: 操作pointer是間接的 01/01 22:12
11F:推 afafaf: Pointer 就是一個4(8) bytes的value 01/02 17:20
12F:推 Killercat: C從頭到尾都只有一種東西叫做Call by Value 01/02 22:38
13F:→ Killercat: 只是你可以選擇傳入的是指標還是數值而已 01/02 22:39
14F:→ Killercat: 所以根本沒有什麼「保留call by value的目的」這回事 01/02 22:39
15F:推 stupid0319: 事實上要知道call stack ret等還有暫存器等程式運作 01/02 23:12
16F:→ stupid0319: 才會理解為什麼會有pointer 01/02 23:12
17F:推 edward13: 嚇我一跳哪時ptt可以按上下鍵來切換推文.. 01/04 14:24