作者:me (
就是在下小弟我啦)
主旨:C語言哪來的 call by address...
``In C, all functions are passed " by value" '', K&R,
page27
呃...被中文書籍誤導7年了...
-------------------------------------------------------
作者:schoolmate 1
主旨:Re: C語言哪來的 call by address...
其最初設計適用來取代部分的組合語言於OS的開發,於1970年
Bell Lab被設計出,並於歷經超過20年的推廣使用和標準建立
,它可說是世上最為普遍的語言之一,C語言發展仍有許多就系
統使用,甚至被現在多數的embedded system 使用。
(
答非所問的典範...)
-------------------------------------------------------
作者:me
主旨:Re: C語言哪來的 call by address...
其實真正的原因是...
C語言是當初要開發UNIX,才研發出來的。
而開發UNIX的目的,是為了在PDP-11上面
玩遊戲(不是PDA喔)
這個玩遊戲計畫,就是K&R做的
(
以上是網路看來的,我也不確定對不對)
不過,這和C沒有call by address有啥關係?
-------------------------------------------------------
作者:schoolmate 1
主旨:Re: C語言哪來的 call by address...
c語言有2種參數:
1.call by value→傳值
2.call by address→傳址
第2個,其泛用性定義:call by address = call by reference
-------------------------------------------------------
作者:me
主旨:Re: C語言哪來的 call by address...
reference不是C++的東西嗎?
-------------------------------------------------------
作者:schoolmate 1
主旨:Re: C語言哪來的 call by address...
找幾本有關C/C++的原文電子書,然後再用關鍵字去搜尋"Call by Address"
和"Call by Refrence",看外國做這是如何給予定義。
-------------------------------------------------------
作者:me
主旨:Re: C語言哪來的 call by address...
我第一篇寫的內容,就是原文書講的呢...
「C語言的函數呼叫,不像是福傳語言是傳參照,而是傳值,
但是我們可以傳一個指標達到傳址的目的」
所以就算傳指標過去,還是call by value,不是call by reference
書的索引也沒看到"call by address"
還是書上寫錯了...?
-------------------------------------------------------
作者:schoolmate 2
主旨:Re: C語言哪來的 call by address...
你可能要去搞懂一下 這個 * 符號跟這個 & 符號的用法
我記得市面上一些C/C++的書都會有小範例解釋
------------
看到最後,我不禁懷疑是我錯了
http://c-faq.com/ptrs/passbyref.html