在编写大型程序的时候,常常要定义函数以使主函数简洁且清晰。然而我们一定要明细这样的函数所产生的影响。
试验程序
#include <iostream>
using namespace std;
int a = 2;
void func(int n, int& m)
{
a = 3;
n++;
m++;
}
int main()
{
int b = 1;
int c = 5;
func(b, c);
cout << a << " " << b << " " << c << endl;
return 0;
}
输出结果
结论
- 全局变量在函数中被改变就真的变了
- 局部变量只是相当于赋个值,在函数里变了,出来就不再有效
- 除非是个引用(reference),这样才会造成影响。(而数组不能有reference,这就很烦。而且数组既不能判断相等,又不能一个数组给另一个数组赋值,真的烦。所以相比之下喜欢用vector)