
解析void fun (int x,int y) {x=x+y;y=x-y;x=x-y;}书上说这是交换形参 额 看不明白 求解!!
2个回答
展开全部
假设原来的x是X,y是Y
那么
x = x+y = X+Y
y = x-y = X+Y-Y = X
x = x-y = X+Y-X = Y
所以3行命令以后x变成了Y, y变成了X (相当于交换了x和y)
但是此交换对于调用fun使用的实参无影响, 因为这里只是对形参进行了交换.
如果要交换实参, 则需要把函数的原型改为void fun (int& x,int& y)
那么
x = x+y = X+Y
y = x-y = X+Y-Y = X
x = x-y = X+Y-X = Y
所以3行命令以后x变成了Y, y变成了X (相当于交换了x和y)
但是此交换对于调用fun使用的实参无影响, 因为这里只是对形参进行了交换.
如果要交换实参, 则需要把函数的原型改为void fun (int& x,int& y)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询