int f(float i, float j, float k)
{
float x=i;
i=j;
j=k;
k=x;}
main(){
float x=5; y=10 z=25;
if(...){
f(x,y,z);
}
else{
f(y,z,y); /* what's x,y,z after this line using call-by-reference and call-by-name mechanism*/
}
}
我想我對這三種傳遞機制有一個很好的理解。在f(x,y,z)後面。 X,Y,Z將具有值不同通過機制的參數值
10 25 5,如果它是通過參考
5 10 25呼叫如果是由值
10 25 5呼叫如果是由值結果呼叫。
(我仔細檢查了答案,我相信這些都是corrent)
,但我的答案是完全錯誤的,F(Y,Z,Y)。我通過參考電話和姓名撥打了10,25,10。如果x(y,z,y)在f(y,z,y)之後如果使用通過引用的呼叫並按名稱調用,則x,y,z的值將如何變化
在這個例子中,f的參數被值傳遞。 –
我不確定C++中是否有按值調用的結果機制。你是怎麼檢查的? –
我做了一些修改。這是我考試中的一個問題。所以我只是假設這些傳遞機制存在,並根據不同的傳遞機制看到參數將如何變化 – user2247155