作者minimatsumi (sugar)
看板TransCSI
標題[問題] 傳址、傳值呼叫
時間Thu Apr 14 19:20:00 2011
做題目遇到傳址、傳值呼叫,只要題目難一點就會一直卡住。
請問下面兩題如何計算?
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值?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.120.43.32
→ tcis:教師甄試考題?! 04/15 23:16
→ minimatsumi:是的! 04/16 23:40
→ bibo9901:沒有"傳址"這種東西. 那也是一種傳值, 不過傳的是位址 04/18 15:20
→ stator:第一題是去年全國,第二題是去年桃園國中的題目 04/18 15:27
→ minimatsumi:不能簡稱傳址嗎?我知道他傳的是位置... 04/19 18:44
推 EEspresso:第二題是3 這種問題建議丟給compiler逐步執行 04/21 21:11
→ EEspresso:多RUN過幾次就知道怎麼跑的 04/21 21:12
→ destiny1015:call by address簡稱傳址...應該沒錯吧? 04/24 03:03