#include <iostream>
using namespace std;
int main()
{
void swap(int &a,int &b);
int a=1,b=2;
cout<<a<<" "<<b<<endl;
swap(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
运行结果:
1 2
1 2
以上运行结果表明并没有完成两个变量的交换。
使用debug工具时,发现函数调用语句swap(a,b);没有执行。
代码修改后:
#include <iostream>
using namespace std;
void swap(int &a,int &b);
int main()
{
int a=1,b=2;
cout<<a<<" "<<b<<endl;
swap(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
运行结果:
1 2
2
以上运行结果表明完成两个变量的交换。
以上两个程序的唯一区别在于函数声明的位置,一个放在main函数外,一个放在main函数内。