Call By Value

Call By Address


傳值呼叫、呼叫

所有呼叫均為「傳值呼叫」,呼叫後返回主程式,傳入變數內容不變。

※若想更動變數值,必須使用『傳址呼叫』,將變數記憶體傳入副程式。

Call By Value

傳入的是變數的變數的值a、b。

副程式以變數a1、b1接收,a1a、b1b的記憶體位置不同。

變數a=100、b=200,第一次輸出是100、200沒問題,呼叫副程式之後,第二次輸出a,b還是100、200。

Call By Address

傳入的是變數的記憶體位址:&a、&b。

副程式以指標變數*a1、*b1接收,*a1就是a、*b1就是b。

變數a=100、b=200,第一次輸出是100、200,呼叫CallByReference副程式之後,第二次輸出a,b變成200、20。