主題: 中序轉後序
查看單個文章
舊 2011-07-23, 02:51 PM   #2 (permalink)
getter
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

迪西沒有記錯的話

-----------------------------------------------------------------

在所有程式語言中,資料傳遞有兩種,一種是『傳值呼叫』、一種是『傳址呼叫』

傳值呼叫
僅僅只有結果(變數的內容傳遞),當 A Function 被 B Function 呼叫時,由
B Function 以『傳值呼叫』、傳遞結果給 A Function,這樣 A Function 結
束,其輸出是不會改變 B Function 內的變數內容,若 B Function 要接收 A
Function 的運算結果,則需要指定一個變數去接收 A Function 的 return 的
結果。好處是若要維持某一個變數的內容,不要因為被呼叫某 Function 而改變
的化,可以利用 『傳值呼叫』。缺點是一次只能回傳一個唯一結果。


傳址呼叫
直接以某個記憶體位址的指派,直接更動某個變數的資料(內容)。這種透過記憶位置
呼叫個變數器而更動傳遞的資料的方式,就是『傳址呼叫』。
當 A Function 被 B Function 呼叫時,由B Function 以『傳址呼叫』、傳遞結果給
A Function,當 A Function 結束,其輸出是直接改寫 B Function 內的某個變數內容。
當如有大量的資料需要在數個 Function 需要被共用、流動時,『傳址呼叫』是最好用的,
但是程式碼要是處理不好,會改變到不想改變的『變數器』內容就是了。


共用資料變數的方式,還有一種就是『全域變數』,在程式執行時,宣告一個
大量的 Array,作為『全域變數』,接下來的任何 Function 的內部變數宣告
名稱,只要不與該 Array 重複,程式在執行上,習慣上會往上一層找尋有沒有
該變數可以用,如此就可以共用資料了。不過需要清楚『全域變數』、『區域
變數』的特性及變數存活週期等等。


指標變數或相關的傳址用法 * 或是 & 符號,以及 Array 的運算操作

以 Array 跟一般變數有一點不一樣,Array 的名子可以當作指標變數
傳遞位址的運算依據

其中 & 符號是指傳遞 &A變數的該A變數的位址,而不是A變數的內容 ...

& 的兩種作用,一個是取得某個變數器的位址;另一種是依據記憶體位址去取出變數器的內容(資料)

可以詳細參考 C/C++ 語言書的傳址呼叫 ...

迪西只記得這些 ... 其他都忘了 ...
__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖