问一个比较有趣的问题,关于谭浩强写的C++教材,教材上的问题.
#include <iostream >
using namespace std;
void main()
{
void swap(int &,int &);
int b=2,c=3;
swap(b,c);
cout<<b<<c;
}
void swap(int& a,int& b)
{
int temp;
temp=a;
a=b;
b=temp;
}
这是谭浩强写的一个关于引用的例子,目的是交换两个数据,但我上机运行后根本不能交换数据,我想引用肯定没错,但错在那呢,在一个偶然的机会.我把代码改成这样:
#include <stdio.h >
#include <iostream >
using namespace std;
void swap(int& a,int& b)
{
int t;
t=a;
a=b;
b=t;
}
void main()
{
int b=2,c=3;
swap(b,c);
cout<<b<<c;
}
两个数据居然交换了,我百思不得其解,请问各位高手能告诉我为什么吗?
[解决办法]
第一个例子毫无问题,如果你在你机器上不行,建议你调试一下,肯定你代码哪有问题,不完全符合你给的例子
[解决办法]
果然VC6中,函数声明放在main中,就不能交换了.函数声明放在main前面,就又能交换了.
我就搞不懂,老谭为什么老把函数声明放在main中.
一般来说,声明的东西都放有.h文件中.