[問題] 傳址、傳值呼叫

作者: minimatsumi (sugar)   2011-04-14 19:20:00
做題目遇到傳址、傳值呼叫,只要題目難一點就會一直卡住。
請問下面兩題如何計算?
1.VB
Private Sub Form_Activate( )
DIM X as Integer
X=3
Call F1(X)
Debug.Print(X)
End Sub
Sub F1( ByRef X As Integer )
Call T2( X=X+X , X , X )
End Sub
Sub T2(ByRef A As Integer ,ByVal B As Integer , ByRef C As Integer )
A = A + 1 : B = B + 2 : C = A + B * C
End Sub.
請問最後印出?
2.C/C++
int f1(int y){y=y+1; return y;}
int f2(int &y){y=y+1; return y;}
int f3(int *y){*y=*y+1; return *y;}
void main(){
int a,b,c,d,x=1;
a=f1(x);
b=f2(x);
c=f3(&x);
d=x++;
}
請問d值?
作者: tcis (像山一樣思考)   2011-04-15 23:16:00
教師甄試考題?!
作者: minimatsumi (sugar)   2011-04-16 23:40:00
是的!
作者: bibo9901 (function(){})()   2011-04-18 15:20:00
沒有"傳址"這種東西. 那也是一種傳值, 不過傳的是位址
作者: stator (別急著吃棉花糖)   2011-04-18 15:27:00
第一題是去年全國,第二題是去年桃園國中的題目
作者: minimatsumi (sugar)   2011-04-19 18:44:00
不能簡稱傳址嗎?我知道他傳的是位置...
作者: EEspresso (我要吃!!!)   2011-04-21 21:11:00
第二題是3 這種問題建議丟給compiler逐步執行多RUN過幾次就知道怎麼跑的
作者: destiny1015   2011-04-24 03:03:00
call by address簡稱傳址...應該沒錯吧?

Links booklink

Contact Us: admin [ a t ] ucptt.com