一个简单C++问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 19:14:19
#include <iostream>
using namespace std;
void swap (int a,int b)
{
int t;
t=a,a=b,b=t;
}
void main()
{
int x=7,y=11;
cout <<"x="<<x<<" y="<<y<<endl;
swap (x,y);
cout <<"after swap:";
cout <<"x="<<x<<" y="<<y<<endl;
}
这里的int t;
t=a,a=b,b=t;
是什么意思啊:

t=a,a=b,b=t;
t可以认为一个临时变量。
先把a的值存入t中,接着将b的值覆盖掉a的初值,
再将临时变量t中值(原a值)存入b中。
也就是将a和b的值互相交换。

t=a,a=b,b=t;
这里是a与b数据交换,就像两只水桶的水交换一样,需要找第三只桶才能完成,而t就相当于第三只水桶。

呵呵
你这个函数达不到交换的目的。

void swap (int a,int b)
{
int t;
t=a,a=b,b=t;
}

改成:
void swap (int &a,int &b)
{
int t;
t=a,a=b,b=t;
}

swap(x,y)的作用是传递值,把x,y的值传给a,b.

int t;意思是定义一个中间变量t,这时的t的值是空的.

而t=a就是把a的值传给t,那么这时的t=7.

a=b就是把b的值传给b,这时a=11.

b=t就是把t的值传给b,这时b=7.

达到了交换的目的.

交换

用&比较好