一篇文章带你入门C语言:函数
一篇文章带你入门C语言:函数,博智网带你了解详细信息 。
目录
- 函数
- 定义
- 库函数
- 定义
- 介绍
- Example 1 strcpy
- Example 2 memset
- 自定义函数
- Example 1
- Example 2 两数交换
- 链式访问
- Example 1
- 函数声明
- 函数递归
- Example 1
- Example 2
- 函数迭代
- Example 3
- Example 4
- 总结
函数
定义程序里的函数又被叫做子程序,他作为一个大型程序的部分代码,有一或多个语句项组成 。函数负责完成某项特定任务,提供了对过程的封装和对细节的隐藏,这样的代码通常会被集成为软件库 。
特点:函数的分类有:库函数和自定义函数 。
具备相对的独立性一般有输入值和返回值功能单一且灵活
库函数定义库函数,顾名思义,放在库里供他人使用的函数 。如打印输出这样的基础功能,他不是业务性的代码,在开发过程中使用率高且可移植性强,故C语言的基础库里提供了这样的一系列基础功能的代码 。
一般库函数有:
IO函数(input&output)—— printf scanf getchar putchar …字符串操作函数 —— strlen strcmp strcat strcpy …字符操作函数 —— tolower toupper …内存操作函数 —— memcpy menset memmove memcmp …时间/日期操作函数 —— time …数学函数 —— sqrt abs fabs pow …其他库函数
介绍为了掌握库函数的使用方法的学习,我们可以参照权威网站 cplusplus 的解析为样本,一般在不同的平台上也是大同小异 。一般都是按照这样的顺序对函数进行解析 。
函数的基本信息功能描述函数参数返回值例子拓展
Example 1 strcpychar * strcpy ( char * destination, const char * source);















函数迭代递归、迭代的区别?
递归是重复调用函数自身实现循环 。
迭代是函数内某段代码实现循环,循环代码中变量既参与运算同时也保存结果,当前保存的结果作为下一次循环计算的初始值 。
递归循环中,遇到满足终止条件的情况时逐层返回来结束 。
迭代则使用计数器结束循环 。
当然很多情况都是多种循环混合采用,这要根据具体需求 。
Example 3求n的阶乘
int fac(int n){ if (n <= 1)return 1; elsereturn n * fac(n - 1);}
Example 4求第n个斐波那契数
int fib(int n){ if (n <= 2)return 1; elsereturn fib(n - 1) + fib(n - 2);}
但是这个方法效率是非常低的,当数字特别大时,层层拆分下来,时间效率是 O ( 2 n ) O(2^n) O(2n) 。
根据公式可知,第三个斐波那契数可由前两个得到,我们利用这个规律
int fib(int n){ int a = 1; int b = 1; int c = 1; while (n >= 3) {c = a + b;a = b;b = c;n--; } return c;}
上一个c变成了b,上一个b变成了a 。如此循环往复 。利用迭代的方式,计算一个数只需要计算n-2次,这样的话时间复杂度就是 O ( n ) O(n) O(n) 。效率大大提高 。
有这两题我们可以发现,什么时候用递归简单呢?
推荐阅读
- ps金属光泽要怎么做
- 苹果13桌面小组件照片怎么设置
- etc余额不足让通行吗
- cdr中要怎么进行居中对齐
- word表格上下错开怎么对齐
- 美团会员在哪里买
- cdr导出pdf应该咋操作
- cdr导出应该如何操作
- cdr文件要怎样导出jpg
- 华为手机怎么调出小窗口
