目录
- 1. 函数的嵌套调用和链式访问
- 2. 函数的声明和定义
- 3. 函数递归
1. 函数的嵌套调用和链式访问
函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的。
1.1 嵌套调用
#include <stdio.h>
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i = 0;
for(i=0; i<3; i++)
{
new_line();
}
}
int main()
{
three_line();
return 0;
}
函数可以嵌套调用,但不能嵌套定义。
1.2 链式访问
把一个函数的返回值做另一个函数的参数
#include <stdio.h>
#include <string.h>
int main()
{
char arr[20] = "hello";
int ret = strlen(strcat(arr,"bit"));//这里介绍一下strlen函数
printf("%d\n", ret);
return 0;
}
#include <stdio.h>
int main()
{
printf("%d", printf("%d", printf("%d", 43))); //注:printf函数的返回值是打印在屏幕上字符的个数
return 0;
}
2. 函数的声明和定义
2.1 函数的声明
- 函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
- 函数的声明一般出现在函数使用之前,要满足先声明后使用。
- 函数声明一般放在头文件中。
2.2 函数的定义
C 语言中的函数定义的一般形式如下:
return_type function_name( parameter list ) { body of the function }
在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
- 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
- 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
- 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
- 函数主体:函数主体包含一组定义函数执行任务的语句
3. 函数递归
3.1 什么是递归
递归指的是在函数的定义中使用函数自身的方法。
递归的主要思考方式在于:把大事化小
3.2 递归的两个必要条件
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
- 每次递归调用之后越来越接近这个限制条件。
语法格式如下:
void recursion()
{
statements;
... ... ...
recursion(); /* 函数调用自身 */
... ... ...
}
int main()
{
recursion();
}