即息极 发表于 2025-6-4 17:03:16

函数的嵌套调用以及函数的递归调用

函数的嵌套调用

C语言的函数定义是互相平行的、独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,也就是不能嵌套定义,但是可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数

如上执行过程:

[*]执行 main 函数
[*]遇到函数调用的语句,调用函数 a ,流程转到 a 函数
[*]执行 a 函数
[*]遇到函数调用的语句,调用函数 b ,流程转到 b 函数
[*]执行 b 函数
[*]b 函数执行完毕,返回 a 函数,继续执行 a 函数
[*]a 函数执行完毕,返回 main 函数,继续执行 main 函数
[*]main 函数执行完毕,程序结束
函数的递归调用

在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用
C语言的特点之一就在于允许函数的递归调用

//f(x) = f(x - 1) + 2

#include <stdio.h>

int func(int index)
{
        if (1 == index)//递归结束条件
                return 10;

        return func(index - 1) + 2;//开始递归
}

int main(void)
{
        printf("%d\n", func(5));

        return 0;
}运行结果:

例:用递归法求 n!
//f(n) = f(n - 1) * n

#include <stdio.h>

long long func(int n)
{
        if ((1 == n) || (0 == n))//递归结束条件
                return 1;

        return func(n - 1) * n;//开始递归
}

int main(void)
{
        int n;
        scanf("%d", &n);
        printf("%lld\n", func(n));

        return 0;
}在VS编译器内会报C4996错误,解决见下文:
C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)
运行结果:


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

米榜饴 发表于 2025-10-27 00:46:49

感谢分享

汲佩杉 发表于 2025-10-29 08:14:00

鼓励转贴优秀软件安全工具和文档!

曲愍糙 发表于 2025-11-3 20:32:54

热心回复!

栓州 发表于 2025-12-5 12:16:35

懂技术并乐意极积无私分享的人越来越少。珍惜

赀倦 发表于 2025-12-11 07:09:41

很好很强大我过来先占个楼 待编辑

求几少 发表于 2025-12-11 10:23:53

新版吗?好像是停更了吧。

篙菠 发表于 2026-1-13 23:29:27

收藏一下   不知道什么时候能用到

剧拧并 发表于 2026-1-17 02:12:03

感谢发布原创作品,程序园因你更精彩

宁觅波 发表于 2026-1-18 01:12:42

分享、互助 让互联网精神温暖你我

幌斛者 发表于 2026-1-19 04:28:33

yyds。多谢分享

押疙 发表于 2026-1-19 21:36:56

东西不错很实用谢谢分享

何玲 发表于 2026-1-20 09:58:16

谢谢楼主提供!

僚娥 发表于 2026-1-20 14:18:43

收藏一下   不知道什么时候能用到

愤血冒 发表于 2026-1-28 09:52:41

很好很强大我过来先占个楼 待编辑

东门清心 发表于 2026-1-30 05:42:22

用心讨论,共获提升!

贺蛟亡 发表于 2026-2-1 03:12:37

感谢发布原创作品,程序园因你更精彩

季卓然 发表于 2026-2-3 06:45:40

感谢分享,下载保存了,貌似很强大

秤陷曲 发表于 2026-2-4 04:29:36

东西不错很实用谢谢分享

骆贵 发表于 2026-2-7 03:11:50

分享、互助 让互联网精神温暖你我
页: [1] 2
查看完整版本: 函数的嵌套调用以及函数的递归调用