C/C++语法:(三)函数
1.在函数中传入引用变量
我们在小学二年级的时候学过,函数中传入实际参数,并不会改变他们自身的值,考虑以下代码:
#include <iostream>
using namespace std;
int f(int x){
x = 5;
}
int main(){
int x = 10;
f(x);
cout << x << endl;
return 0;
}
得到的结果显然是 x = 10. 如果想要通过函数改变变量的值呢?小学二年级教过我们使用return语句,除此之外,还有使用引用变量的方法:
int f(int &x){
x = 5;
}
void swap(int &x, int &y){ //另一个例子
int t = x;
x = y;
y = t;
}
int main(){
int x = 10;
f(x);
cout << x << endl;
return 0;
}
这样经过函数f(x),x的值就被改成5了. 实际上引用和指针类似,之所以没有出现*号是因为C作者为了使用方便,已经优化成了这种写法,所以用就完事了.
2.在函数中传入数组变量
对于一维数组,可以有以下3种写法:
void fun(int a[10]);
void fun(int a[]);
void fun(int *a);
对于二维数组:
void fun(int (*a)[10]); //3是第二维的大小
void fun(int a[][10]); //只有第一维可以省略,可推广至多维数组
算法题中用到的函数知识暂时就这么多了,有用到新的再补充吧.
本文算法思想源于Acwing,特此注明。