最近寫C pointer
想到既然pointer可以讓程式跑更快
那當初為什麼不廢除原來的call by value
直接用pointer 的方式代替原來的運算就好了
保留call by value 的目的是什麼
作者:
LPH66 (-6.2598534e+18f)
2016-01-01 11:23:00你知道傳指標也是 call by value 嗎?
有時就是要copy兩份才不傷身體阿 像你這篇就copy兩份
call by address只能對變數吧? 數值又不能取位址
作者:
chuegou (chuegou)
2016-01-01 13:52:002F幽默www 這篇要指向上一篇www
這樣就能當作是local variable還有當你傳多個int *卻只有讀沒有寫的需求時比int還慢因為會再多一倍存取記憶體的時間,脫褲子放屁(此處以當int *不是指向array of int時)
作者: jaid (jaid) 2016-01-01 22:12:00
操作pointer是間接的
作者: afafaf (bb) 2016-01-02 17:20:00
Pointer 就是一個4(8) bytes的value
C從頭到尾都只有一種東西叫做Call by Value只是你可以選擇傳入的是指標還是數值而已所以根本沒有什麼「保留call by value的目的」這回事
事實上要知道call stack ret等還有暫存器等程式運作才會理解為什麼會有pointer
作者: edward13 (-_-) 2016-01-04 14:24:00
嚇我一跳哪時ptt可以按上下鍵來切換推文..