首页 > 编程知识 正文

函数的递归调用怎么理解,c语言递归函数怎么理解

时间:2023-05-05 20:27:54 阅读:115001 作者:1914

1 .函数定义:是函数体的实现。 函数主体是调用函数时执行的代码块。

函数声明:为编译器提供有关函数的信息,包括参数的数量、每个参数的类型和返回类型。 因为函数被正确调用。

【注意】:如果调用函数时编译器看不到其声明,则假设函数返回整数值。 对于返回值不是整数的函数,在调用前声明很重要,可以避免不可预测的类型转换导致的错误。 对于没有原型的函数,传递给函数的参数会增加默认参数。 char和short类型的参数转换为int类型,浮点类型转换为双精度类型。

执行结果: 25

2 .有两种方法可以为编译器提供函数特定的信息。 第一,将函数的定义放在源文件之前。

二是提供函数原型。

3 .整数常量转换为字符常量的方法如下:

0’0=‘0’

1‘0’=‘1’

4 .递归本质说明:

例如,当给定值4267时,必须按照“4”、“2”、“6”和“7”的顺序来生成字符。

分析递归工作原理:

步骤1 :函数刚开始执行时,堆栈的内容如下:

步骤2 :执行除法运算后,堆栈内容如下:

步骤3 :接下来,if语句确定p的值不为零,并对该函数执行递归调用。 第二次调用此函数时,堆栈的内容如下:

步骤4 :在堆栈中创建新变量,并隐藏上一组变量。 它们无法访问,除非返回当前递归调用。 再次执行除法运算后,堆栈内容如下。

第五步: m的值变为42。 因为它还不为零,所以继续递归调用以创建一组变量。 执行这次调用的除法运算后,堆栈的内容如下。

步骤6 :此时,m的值还不为零,继续递归调用。 执行除法运算后,堆栈内容如下:

步骤7 :当前m的值为零,递归函数开始打印而不调用自己。 函数返回,并开始放弃堆栈上的变量值。 每次调用putchar时得到的变量m的最后一个数字,对m进行模型10的馀数运算,并加到字符常数’0’上输出结果。

输出结果: 4

步骤8 :函数返回,变量从堆栈中丢弃。 然后,使用堆栈顶部的自己的变量重新执行递归函数的上一次调用。 由于其m值为42,因此调用putchar打印的数字为2。

输出结果: 42

输出结果: 426

输出结果: 4267

要在堆栈中执行递归函数,请执行以下操作:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。