新手C++引用问题求解释?
#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;
}
运行结果:i,j值为什没有交换?
[解决办法]
我认为传统的写法应该是在函数外面声明局部函数吧,代码如下:
using namespace std;
void swap(int &,int &);
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;
}
[解决办法]
正解!
vc6运行放在函数外面声明,结果是对的。
[解决办法]
VC6 有一些不规范的地方。 你在 main 函数里面声明的 swap 函数, 错误可能是函数 声明 和 定义 的作用域不同导致的。