为什么i和j会交换值?a,b是形参。

来源:百度知道 编辑:UC知道 时间:2024/06/06 19:46:04
代码
cout<<"i is"<<i<<endl
<<"j is"<<j<<endl;
// swap.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int i=10,
j=20;
cout<<"i =" <<i<<endl;
cout<<"j ="<<j<<endl;

swap(i,j);
cout<<"i =" <<i<<endl;
cout<<"j ="<<j<<endl;

return 0;
}
void swap(int l,int m)
{
int temp=l;
l=m;
m=temp;
}

应为你用的编译器里含了swap这个函数,它就是交换两个数的。
不信你把程序里的swap都改为swap1,试试,连编译都通不过,因为你前面根本没有函数声明,而函数体写在了后面。所以编译通不过,改正后,两个数不再被交换。

请把函数的代码一起贴出来。

#include "iostream"//这个头文件还包含了很多东西哦

你的代码之所以这样,不是你理解错了,你想的是对的。
你把你的swap函数注释掉,照样编译运行通过,而且i、j交换了。

我想你已经知道怎么回事了,都是懂C++的,我就不多说了。