函数声明的有关问题

函数声明的问题
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的值交换过来,没有问题啊。
------解决方案--------------------
这个放在里面也可以啊,但是很少这么用吧,你这个我试了一下没问题
------解决方案--------------------
VC6.0下?
这样吧:
C/C++ code
#include <iostream>
using namespace std;

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

int main( )
{
  //void swap(int &a,int &b);
  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。