|
Major Member
|
引用:
|
作者b9156032
call by address:副程式宣告的變數的記憶體位址和主程式傳過去的變數是相同的
所以副程式裡面變數如果有變化主程式也會跟著變
EX:INT A(INT *X){
X++;
}
MAIN(){
INT B=0;
A(B);
?B;//會印出1
}
call by name:compiler 在編譯的時候會直接把副程式裡面的x直接改成變數b
call by reference:不知道怎解釋....
|
我找到一個call by reference的例子了..請看看是不是這樣
sum(x,y){
x=x+y
}
Main(){
a=2;b=3;
sum(a,b);
write(a,b);
}
call by value的結果會是2,3
call by reference結果會是5,3
那call by address跟call by name呢?? 
|