前言:本期是关于函数知识的介绍,篇幅分为函数知识(1)和函数知识(2)
此篇是函数知识(1)
什么是函数?
1 函数即子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成,完成某项特定的任务,具有相对独立性
2 有参数,返回值,提供对过程的封装和对细节的隐藏
函数分类:
*库函数:
如 printf (打印) strcpy(拷贝字符串) pow (计算次方)这些函数可能会被程序员大量使用
为了支持可移植性和提高程序的效率,在c语言的基础库中提供了一系列的库函数,便于程序员 使用
c语言常用的库函数:
1 IQ函数:输入输出函数,如scanf printf 等
2 字符串操作函数:如strcpy strcmp(字符串的比较函数)等
3 内存操作函数:如memset(内存初始化函数)等
4 时间/日期函数:如time函数
5 数学函数:如sqrt(开平方函数)pow等
6 其他库函数
tip:使用库函数必须包含#include对应的头文件
库函数不必全部记住,要利用好查询工具
库函数查询网站推荐:
cplusplus:https://cplusplus.com/reference/
cppreference:https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5
自己动手丰衣足食
*自定义函数
自定义函数是程序员自己根据需要设计出的函数
自定义函数组成:
返回类型 +函数名+ 函数参数+函数的语句项
ret_type fun_name(para1, * )
{
statement;//语句项}
ret_type 返回类型
fun_name 函数名
para1 函数参数
tip:设计自定义函数时要区分 传值调用 传址调用
函数参数:
*实际参数(实参)
真实传给函数的参数是实参
实参可以是:常量 变量 表达式 函数等
无论实参是何种类型,在函数调用时都必须有确定的值,以便将值传递给形参
*形式参数(形参)
函数具体实现时,函数名后括号中的变量就是形参
形参只有在函数被调用时才实例化(分配内存单元)
当函数调用结束后形参自动销毁,因此形参只在函数中有效
形参实例化之后相当于实参的一份临时拷贝
函数调用:
1 传值调用:
函数的形参和实参分别占有不同内存块,对形参的改变不会影响实参
2 传址调用:
a 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种函数调用方式
b 传址调用可以让函数和函数外部的变量真正建立起联系
即在函数内部就可以直接操作函数外部的变量,对其进行修改
3 总结:
a 我们在设计自定义函数时,若是需要对函数外部的变量本身进行修改,如交换两个变量的值等
需要传址调用,即传给函数的必须是两个变量的地址,用到&符号
b 若是不需要对函数外部的变量本身进行修改,如比较两个变量的大小等,传值调用足以