【C语言】函数递归

简介: 【C语言】函数递归

函数递归的概念

程序调用自身的编程技巧称为递归(recursion )。程序调用自身的编程技巧称为递归(递归)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用目身的一种方法,它通常将一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可用。递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小。


递归的两个必要条件

存在限制条件,当满足这个限制条件时,递归将不再继续。

每次递归调用之后越来越接近这个限制条件。


例如(自编函数计数输入字符段的长度):

int My_strlen(char* arr)
{
  //第一次调用:1+My_strlen(arr + 1)   arr + 1这个表示的是arr[]数组中的下标数
  //第二次调用:1+1+My_strlen(arr + 1)
  //第三次调用:……
  //第……次调用:……
  if (*arr != '\0')//判断数组结尾
  {
    return 1 + My_strlen(arr + 1);
  }
  else
    return 0;
}
int  main()
{
  char arr[] = "hellow world";
  int count = 0;
  count = My_strlen(arr);
  printf("count=%d", count);
  return 0;
}
相关文章
|
5天前
|
存储 C语言
向函数传递结构体: C语言中的结构体参数传递详解
向函数传递结构体: C语言中的结构体参数传递详解
18 0
|
5天前
|
C语言
C语言中返回指针值的函数
C语言中返回指针值的函数
14 0
|
1天前
|
C语言
malloc()函数
`malloc()`是C语言中的动态内存分配函数,用于分配指定大小的内存块,并返回一个`void*`类型的指针。要包含`stdlib.h`头文件来使用它。分配的内存大小以字节为单位,成功则返回内存首地址,失败则返回`NULL`。需要注意的是,返回的指针需强制转换为所需类型,并在使用后用`free()`释放内存,避免内存泄漏。切勿在分配区域内移动指针,以防止释放时出现问题。
|
3天前
|
Serverless C语言
C语言函数详解与实战应用
C语言函数详解与实战应用
8 1
|
3天前
|
算法 C语言
C语言函数递归调用详解与实战应用
C语言函数递归调用详解与实战应用
11 0
|
3天前
|
C语言
C语言函数的嵌套调用详解
C语言函数的嵌套调用详解
9 1
|
5天前
|
存储 C语言
向函数传递字符串: C语言中的技术与实践
向函数传递字符串: C语言中的技术与实践
14 0
|
5天前
|
程序员 C语言
使用指针变量作为函数参数的C语言程序实例
使用指针变量作为函数参数的C语言程序实例
14 0
|
5天前
|
C语言
C语言函数嵌套与递归调用的深入解析
C语言函数嵌套与递归调用的深入解析
13 0
|
5天前
|
存储 C语言
C语言中向函数传递值和从函数返回值的技术解析
C语言中向函数传递值和从函数返回值的技术解析
15 0