今天犯了个十分低级的错误:
#include
using namespace std;
int a = 1, b = 2;
void swap(int a, int b);
//pass by value
void swap(int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
cout << “a” << a << " b" << b << endl;
}
void main()
{
void swap(int a ,int b);
}
源代码为以上,运行不出结果,于是把swap函数的定义体注释掉,将定义体内的内容粘贴到main函数中,发现可以成功输出相关内容,故排除定义体内代码错误的可能。最后发现原来是在main函数中调用swap函数时,又一次加了其返回值类型,参数类型。
遂得结论:
在主函数中调用函数,不能加函数返回值类型及参数类型,格式为:函数名(参数1,参数2).否则将认为是在main函数内进行二次声明,无实际意义,不能得到输出结果。
更正main函数后:
void main()
{
swap(a,b);
}
于是得到正确输出结果。