#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本身,那么就可以得到你想要的结果
提问者对答案的评价: |