void fun(intx,inty,intz) {printf("fun-in:%d,%d,%d\n",x,y,z); y=x+5; z=x+y;x=z-y;

printf("fun-end:%d,%d,%d\n",x,y,z);}main(){intx=10,y=20,z=30;fun(z,y,x)printf("%d%d%d... printf("fun-end:%d,%d,%d\n",x,y,z);
}
main()
{int x=10,y=20,z=30;
fun(z,y,x) printf("%d%d%d\n",x,y,z);
} 这道题怎么做啊,求帮助
展开
 我来答
风若远去何人留
推荐于2017-12-22 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450164
专业C/C++软件开发

向TA提问 私信TA
展开全部

函数fun的参数

(int x,int y,int z) 

都是传值调用. 不管fun中怎么修改, 不影响主函数值. 

调用的时候, 注意顺序, 对于fun x=30 y=20 z=10. 和主函数的xyz是不一样的. 

先输出fun-in

fun-in:30,20,10

然后 

y=x+5;  y=35

z=x+y; z=30+35=65

x=z-y;  x=65-35=30

输出

fun-end:30,35,65

回到主函数, xyz还是初始值, 输出

102030
百度网友1fc36d4
2012-07-23 · TA获得超过3131个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1972万
展开全部
显示结果为:
fun-in:30,20,10
fun-end:30,35,65
102030

fun函数根据传值来得到他内部标识符x,y,z的值,实际传给fun中x的值是main函数中z变量的值30,传给fun中y的值是main函数中y的值20,传给fun中z的值是mian函数中x的值10,在fun函数中x=30,y=20,z=10,以此进行printf输出,然后执行y=x+5;z=x+y;x=z-y;这些运算都只是改变fun中参数x,y,z的值,这些值是函数调用时在栈空间新分配了存储空间,修改的也是新分配空间的存储值(这里可以看成是fun的零时变量)。
调用执行完fun函数之后,main函数中x,y,z的值不变,x还是10,y为20,在等于30,以此再次输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
porker2008
2012-07-23 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.2亿
展开全部
void fun(int x,int y,int z) // x = 30, y = 20, z = 10
{
printf("fun-in:%d,%d,%d\n",x,y,z); // 输出 fun-in:30,20,10
y=x+5; // y = x + 5 = 35
z=x+y; // z = x + y = 30 + 35 = 65
x=z-y; // x = z - y = 65 - 35 = 30;
printf("fun-end:%d,%d,%d\n",x,y,z); // 输出 fun-end:30,35,65
}
main()
{
int x=10,y=20,z=30;
fun(z,y,x); // 调用fun, 参数顺序为 z y x
printf("%d%d%d\n",x,y,z); // 因为函数修改的是形参,所以main中数据不变。输出 102030
}
追问
再请教一下,第一个为什么改变?
追答
fun里面的参数是形参,在fun里面可以修改,但是修改不影响传入的原来的参数的值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友08030df44
2012-07-23 · TA获得超过2070个赞
知道小有建树答主
回答量:1226
采纳率:0%
帮助的人:493万
展开全部
fun-in:30,20,10
fun-end:30,35,65
102030
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e96ae71ed
2012-07-23 · TA获得超过728个赞
知道小有建树答主
回答量:1548
采纳率:0%
帮助的人:771万
展开全部
30 20 10
10 20 30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式