c++函数基本知识。函数可以分成两个部分来说明,分别是函数头,函数体。
参数列表的写法是类型 + 参数名称,每两个参数之间使用逗号隔开。
参数可以是任意类型,可以是基础数据类型,可以是指针,也可以是结构体类型。
在函数调用的时候,依照函数定义时参数列表的顺序依次传入想要传入的值。在使用的时候,参数的顺序不可以改变。不能颠倒参数的顺序,如果颠倒,则可能发生语法错误,或者进行数据类型的隐式转换。
c++ 允许函数为调用者返回一个量,在这个求平均数的例子中,返回值就是求平均数之后的结果。
调用。在 C++ 中我们通过函数将某个功能部分做成一个模块。下面是一个小例子展示调用函数
#include<iostream>
using namespace std;
int avg(int a,int b){
return (a+b)/2;
}
int main(){
int x = 20;
int y = 30;
int z = avg(x,y);
cout<<z<<endl;
return 0;
}
上面的代码中,我们就把计算平均数做成了一个函数,avg函数,在使用的时候,只需要直接调用
这个函数就行了,而不用去了解平均数的计算方式。
递归调用。在 C++ 中,可以在一个函数中调用另外一个函数,那么,这个函数调用自己就成为递归调用。看一个小例子:
#include<iostream>
using namespace std;
int func(int n)
{
if (n == 1) {
return 1;//表示异常,结束调用,不进行后面的语句
}
else {
return n * func(n - 1);//递归调用
}
}
int main() {
int a = 5;
int res = func(a);
cout << res << endl;//输出结果
return 0;
}
递归调用的三要素,如下:
1. 递归的终止条件是什么?
这是非常重要的,在递归中,我们必须要设计好这一点,那就是递归什么时候停止。否则就会像前面的例子一样,直接爆栈。
2. 递归被分解后最基本操作是什么?
递归非常适合层级调用关系,每一层都执行相同的操作,这个要素,就是要提取出递归最核心的要素。
3. 递归调用传递的参数
这里传递的参数其实除了参数列表,还包括返回值。参数列表表示给下一层调用需要传递什么,返回值表示上一层调用需要返回什么。