C语言 函数 (库函数 · 自定义函数 · 函数参数 · 函数调用 · 嵌套调用链式访问 · 递归)
文章目录:
- 一、函数是什么?
- 二、库函数
- 2.1 为什么要有库函数?
- 2.2 如何学习库函数?
- 2.3 我们就以 strcpy( ) 函数,来参照文档自学一下:
- 2.4 总结:
- 三、自定义函数
- 3.1 函数的组成:
- 3.2 我们举个例子:
- 四、函数的参数
- 4.1 实际参数(实参):
- 4.2 形式参数(形参):
- 五、函数的调用
- 传值调用:
- 传址调用:
- 练习题:
- 1. 写一个函数可以判断一个是是不是素数。
- 2. 写一个函数判断一年是不是闰年。
- 3. 写一个函数,实现一个整形有序数组的二分查找。
- 4. 写一个函数,每调用一次这个函数,就会将num的值增加1。
- 六、函数的嵌套调用和链式访问
- 嵌套调用
- 链式访问
- 七、函数的声明和定义
- 函数声明:
- 函数定义:
- 随便举个例子:
- 八、函数的递归
- 什么是递归?
- 递归的两个必要条件。
- 练习题1:
- 图解:
- 练习题2:
- 图解:
- 练习题3:
- 练习题4:
- 递归总结:
一、函数是什么?
数学中有函数的概念,C语言中也有函数的概念。但是你了解C语言中的函数吗?
- 在计算机科学中,子程序是一个大型程序中的某个部分代码,由一个或者多个语句块组成。它负责完成某项特定任务,而且相比于其他代码,具备相对的独立性。
- 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
- C语言中函数的分类:库函数和自定义函数。
二、库函数
2.1 为什么要有库函数?
- 我们在编写程序的时候,想看一下输出到屏幕上的结果。这个时候我们会频繁的调用一个函数来帮我们完成输出任务:将信息按照一定的格式打印到屏幕上(printf)。
- 在编程的时候,我们会频繁的做一些字符串的拷贝工作(strcpy)。
- 我们在编程的时候,也会涉及到数学计算,其中就会有计算 n 的 k 次方这样的运算(pow)。
像我们上述提及的函数方法,都不是业务代码。而是C语言中为了方便程序员开发,为了提高程序效率和支持可移植性,提供的库函数。
2.2 如何学习库函数?
这里我们简单的看看: www.cplusplus.com.
简单的总结:C语言中常用的库函数有:
- IO 函数
- 字符串操作函数
- 字符操作函数
- 内存操作函数
- 时间 / 日期函数
- 数学函数
- 其他库函数
2.3 我们就以 strcpy( ) 函数,来参照文档自学一下:
第一步:打开网址,在上面空格内输入 strcpy
第二步:查看库函数的结构和英文注释
第三步:鼠标下滑,可以看到Example
第四步:自行代码演示操作一下
2.4 总结:
- 使用库函数,不要忘记要 #include 引用头文件。
- 库函数有很多,我们不能全部记住,这个时候我们要学会如何查询库函数,如何从文档中学习库函数。
库函数查询工具:
MSDN(Microsoft Developer Network)
www.cplusplus.com
http://en.cppreference.com
三、自定义函数
如果库函数可以把程序开发所有任务都完成,那还需要程序员做什么?
所有更加重要的是自定义函数。
自定义函数和库函数一样,都有函数名,返回值类型和函数参数。但不一样的是,这些都是我们自己来设计的,这就给程序员很大的发挥空间。
3.1 函数的组成:
ret_type fun_name(para1, * )
{statement;//语句项
}
ret_type 返回类型
fun_name 函数名
para1 函数参数
3.2 我们举个例子:
- 写一个计算两个数据最大值的函数:
//自定义函数设计
int getMax(int n1,int n2) {return n1 > n2 ? n1 : n2;
}int main() {//自定义函数int num1 = 10;int num2 = 20;int max = getMax(num1,num2);printf("%d\n", max);return 0;
}
再来一个例子:
- 写一个可以交换两个整型变量的函数:
void Swap1(int n1,int n2) {int temp = n1;n1 = n2;n2 = temp;
}
void Swap2(int* a,int* b) {int temp = *a;*a = *b;*b = temp;
}int main() {//自定义函数int num1 = 10;int num2 = 20;Swap1(num1,num2);printf("%d,%d\n", num1, num2);Swap2(&num1, &num2);printf("%d,%d\n", num1,num2);return 0;
}
输出结果:
第一个printf 打印的数据没有交换,第二个 printf 打印的数据有交换。这是为什么呢?
那让我们来调试一下程序,找一下原因:
这里是 Swap1 函数,我们可以看到 main 函数中的 num1 和 num2 数据都传输给 Swap1,n1 和 n2 变量也都接收到数据了
C语言 函数 (库函数 · 自定义函数 · 函数参数 · 函数调用 · 嵌套调用链式访问 · 递归)相关推荐
- 【C语言函数】 - 库函数、自定义函数、函数参数、函数调用、嵌套调用链式访问、递归与迭代、缓冲区
目录 一.函数是什么 二.C语言中函数的分类 1.如何学会使用库函数 1.1.strcpy 1.2.memset 2.自定义函数 2.1.与库函数的区别 2.2.写一个函数可以找出两个整数的最大值 2 ...
- 【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
函数 一.函数的嵌套调用和链式访问 1.嵌套调用 2.链式访问 2.1strlen()函数 2.2printf()函数 二.函数的声明和定义 1.函数声明和定义的介绍 2.函数声明和定义的使用 三.变 ...
- 用c语言线性表的链式表示实现,数据结构-使用C语言 朱战立第2章线性表的链式表示.ppt...
数据结构-使用C语言 朱战立第2章线性表的链式表示 * 循环链表(circular linked list) 循环链表是表中最后一个结点的指针指向头结点,使链表构成环状 特点:从表中任一结点出发均可找 ...
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- [转]EL函数、自定义EL函数、自定义标签
EL函数 1.EL函数的作用:操作字符串 2.在JSP页面中要引入EL函数库 <%@ taglib prefix="fn" uri="http://java.sun ...
- 自定义条件查询_数据查询不止有vlookup函数,自定义zlookup函数查询操作更高效...
Excel数据查询,相信大家首先会想到vlookup函数.毋庸置疑vlookup函数在Excel数据查询中作用是非常的强大.但是它也有一些不能实现的数据查询. 如上图所示,我们需要根据人员的出现次数, ...
- 8.Hive基础—函数—系统内置函数、常用内置函数、自定义函数、自定义UDF函数、自定义UDTF函数
本文目录如下: 第8章 函数 8.1 系统内置函数 8.2 常用内置函数 8.2.1 空字段赋值 8.2.2 CASE WHEN THEN ELSE END 8.2.3 行转列 8.2.4 列转行 8 ...
- Hive _函数(系统内置函数、自定义函数、自定义UDF函数)
函数 系统内置函数 1.查看系统自带的函数 show functuions; 2.显示自带的函数的用法 desc function month; 3.详细显示自带的函数的用法 desc functio ...
- tp5模板使用php函数,tp5 自定义公共函数,前台模板调用
最近用tp5做一个cms,在添加模型的时候,选择类型,这类型太多了,如果一个个的去判断显示,能累死人了,干脆写个公共方法, 首先写公共方法用到Common.php,目录project/applicat ...
最新文章
- 谷歌浏览器输入框背景颜色变黄的解决方案
- Linux下autoreconfig命令安装.
- thinkpad重装系统不引导_thinkpad重装系统不引导_联想电脑重装系统无法引导原因及解决方法...
- 2021年10大人工智能趋势
- SpringMVC_实现简单的增删改查
- 工作流引擎的硬功夫之1-表单自定义
- Phalcon和YII的优点
- 湖南师范大学c语言作业答案,2017年湖南师范大学物理与信息科学学院845C语言程序设计考研题库...
- 看bilibili的财经博主,分析博主的频道
- win7服务器端口被占用,高手亲自帮您win7端口被占用的详尽处理要领
- 也从小站长视角浅谈主机提供商的优劣
- 好莱坞标志将以NFT形式进行慈善拍卖
- everything下载哪个版本_Everything敏感信息泄露
- [转]C#:手把手教你用C#打包应用程序(安装程序卸载程序)
- 美洽客服JavaScript 网页插件
- 本地访问阿里云故障问题
- Raspberry Pi 上手准备
- Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√
- c++/c语言 杨辉三角(详细讲解)。
- ubuntu18.10安装网易云音乐,并解决网易云音乐图标无法启动的问题