Call By Value
Call By Address
傳值呼叫、傳址呼叫
所有呼叫均為「傳值呼叫」,呼叫後返回主程式,傳入變數內容不變。
※若想更動變數值,必須使用『傳址呼叫』,將變數記憶體傳入副程式。
Call By Value
傳入的是變數的變數的值:a、b。
副程式以變數a1、b1接收,a1與a、b1與b的記憶體位置不同。
變數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。