为什么调用了函数结果不变??

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
#include "iostream.h"int swap(int a,int b){        int temp;        temp=a;a=b;b=temp;        return a,b;}void main(){        int x,y;        cin>>x>>y;        cout<<x<<y<<endl;        swap(x,y);                cout<<x<<y<<endl;}偶菜鸟,貌似被调函数通过返回值影响调用函数的 为什么两次输出结果一样呢??高手帮帮忙 谢谢啊~~

                                                                                                因为它采取的是值传递看这句代码:swap(x,y);实际上你是拿出两个参数x,y然后获得x,y的副本x1,y1,其中x1==x;y1==y,然后将x1,y1传入swap(x1,y1);也就是说x,y并不会改变int[] swap(int& a,int& b){int temp;temp=a;a=b;b=temp;int[] array = new int[2]array[0]=a;array[1]=b;return array;}如上所写的,这样传递的就不会是副本,而是x,y本身,那么就可以得到你想要的结果                                       
提问者对答案的评价:
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行