Visual C++ 不能使用引用!?

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:52:44
Visual C++ 6.0下的引用训练如下:
#include <iostream>
using namespace std;
int main()
{
void swap(int &, int &);
int a = 100, b = 200;
swap(a, b);
cout << a << " " << b << endl;
return 0;
}
void swap(int &x, int &y)
{
int z;
z = x;
x = y;
y = z;
}
程序运行在Visual C++下运行结果依然是100 200,没有使用引用后交换,但是在别的C++编译系统下,却可以正常交换。。。这是为什么?Visual C++按理说应该是比较高级的C++编译系统才对。。怪~~~~~
我知道可以用指针,但是我就是想知道为什么在Visual C++中不能用引用?

是因为你的swap函数的声明的地方不对,如果你拿到main()函数外就可以。

在main()函数内声明是不会有什么作用的,因为声明的函数只是一个局部的,不是全局的。

其实,在这个程序的主函数中,swap()函数根本没被调用!
如果你不介意,可以使用指针;
#include <iostream>
using namespace std;
int main()
{
void swap(int *, int *);
int a = 100, b = 200;
swap(&a,&b);
cout << a << " " << b << endl;
return 0;
}
void swap(int *x, int *y)
{
int z;
z = *x;
*x = *y;
*y = z;
}