求C语言代码解释 为什么答案是8 4

[复制链接]
查看11 | 回复3 | 2011-10-6 21:15:37 | 显示全部楼层 |阅读模式
关键在于f()函数,执行完之后y不变,而x变为8。进入f时,传入y的值以及x的地址。首先执行y=y+*x,其中y为4,*x为2,因此临时变量y变为6。其次执行*x=*x+y;,x地址存储的数值变为2+6=8。因此执行完f函数之后,y不变,x变为8。...
回复

使用道具 举报

千问 | 2011-10-6 21:15:37 | 显示全部楼层
首先Y是值传递(相当于是复制了一份新的给它) X是地址传递(相当于是告诉它那个值在什么地方你去用)调用f(y,&x);后y的值不会被改变 x的值会被改变。...
回复

使用道具 举报

千问 | 2011-10-6 21:15:37 | 显示全部楼层
Y没有用指针指向,所以调用之后不能返回值给主函数,而x得值的变化是可以返回给主函数的,y值首先变为6,继而执行表达式二后,x的值就等于6+2=8了。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行