函数调用问题 急 谢谢

[复制链接]
查看11 | 回复3 | 2008-8-20 16:59:02 | 显示全部楼层 |阅读模式
1 void f(int x,int y)
{ int t;
If (xy) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
执行后输出结果是_____。
A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1

回复

使用道具 举报

千问 | 2008-8-20 16:59:02 | 显示全部楼层
2答案是Cvoid f(int v , int w) 这样定义函数 只是把 值传过这个函数里面,不能改变调用的值。。比如 f(y,z);只是把 y,z 的值传给 v ,w, 函数里面怎么用。。x y都不会改变。。这是 函数的值传递方法。。如果想 真正改变 y,z的值 就要用到引用, 函数定义是 void f(int & v , int & w),这样改变v,w, 就可以改变调用的 x,y的值。。...
回复

使用道具 举报

千问 | 2008-8-20 16:59:02 | 显示全部楼层
这道题只是迷惑你的void f(int x,int y) void f(int v , int w)其实是不起任何作用的,因为是值传递,不会引起实参的改变。要是函数以引用的形式写就会引起实参的改变void f(int &x,int &y) void f(int &v , int &w)或者使用指针也可以。建议楼主看一下指针和引用的相关知识。...
回复

使用道具 举报

千问 | 2008-8-20 16:59:02 | 显示全部楼层
那调用的函数没有返回值,也没定义那些跟实际变量有关的数,因此那些变量没有改变!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行