谭浩强《C++程序设计》中的例题6.20引用形参的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:06:50
#include <iostream>
using namespace std;
int main()
{void swap(int &,int &);
int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}

void swap(int &a,int &b)
{int temp;
temp=a;
a=b;
b=temp;
}
在vc++6.0环境中,为什么调用swap函数后,i,j的值没有互换?

其实,在程序运行时,这个函数没有被执行(你按f10单步调试可以知道),原因可能是swap在c++中已经定义了,所以你有重定义就没运行,所以,你只要把函数名改一下就可以了(如把swap改为swapt)或者#include <iostream>
using namespace std;
void swap(int &a,int &b);
int main()
{

int i=3,j=5;

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

return 0;
}

void swap(int &a,int &b)
{
int temp;

temp=a;
a=b;
b=temp;

}
.