目录
一、函数的定义:
计算机科学中 子程序 ,是一个大型程序中部分的代码,由一个或者多个语句块组成。负责完成某项特定任务,且相对于其他代码具有相对的独立性。一般有输入参数和返回值。
二、函数分类:1.库函数 2.自定义函数
- 库函数:C语言本身提供的函数
常见的库函数:IO函数 字符串操作函数 字符操作函数 内存操作函数 时间/日期函数 数学函数 其他库函数
使用时必须包含#include对应的头文件 头文件能使用多个但不能重复!!
- 库函数的使用:借助cplusplus.com进行库函数的查找以及了解
eg:
#include<stdio.h>
#include<string.h>
int main()
{
//strlen - string length - 字符串求长度
//strcpy - string copy - 字符串拷贝
char arr1[] = "bit";
char arr2[20] = "#######";
strcpy(arr2, arr1);
printf("%s\n", arr2);
return 0;
}
(/0是字符串的结束标志)
- 自定义函数:程序员自己设计的函数
//int Add (int x, int y) Add - 函数名 (函数参数) int - 返回类型
//{
// int z = 0;
// z = x + y; {函数体} - 函数的实现
// return z;
//}
//
#include<stdio.h>
//定义函数
int get_max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
int main()
{
int a = 10;
int b = 20;
//函数的使用
int max = get_max(a, b); //该位置值调至上方进行比较
printf("max = %d\n", max);
return 0;
}
三、函数的参数:
- 实际参数(实参):真实传给函数的参数 调用函数时必须有确定的值 便于传递给形参
- 形式参数(形参):函数名括号中的变量 只有在函数被调用时才实例化 调用完便自动销毁 因此只在函数中有效
#include<stdio.h> //定义函数 int get_max(int x, int y)//形式参数 { if (x > y) return x; else return y; } int main() { int a = 10; int b = 20; //函数的使用 int max = get_max(a, b); //真实传递的参数 printf("max = %d\n", max); return 0; }
当实参传递给形参时 形参是实参的一份临时拷贝 对形参的修改是不会改变实参的!!
四、函数的调用:
- 传值调用:把数值传输 形参实参分别占用不同内存块 形参不会影响实参
- 传址调用:把地址传输 把内存外部创建变量的地址传递给函数参数的一种调用方式 函数内部可以操作函数外部的值
函数调用的选择只需考虑是否需要改变函数的变量
五、函数的嵌套调用和链式访问
函数和函数间可以有机组合
- 嵌套调用:
#include<stdio.h>
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i = 0;
for (i = 0; i < 3; i++)
{
new_line();
}
}
int main()
{
three_line()
return 0;
}
- 链式访问:把一个函数的返回值作为另外一个函数的参数
#include<stdio.h> int main() { printf("%d", printf("%d", printf("%d", 43))); return 0; }
从后往前打印 第一个打印出来43 中间打印出返回值(printf返回值为字符长度 可以在网站上自行查找)最后同理 打印结果为4321
六、函数的声明和定义:
- 函数声明:
1.告诉编译器一个函数叫什么,参数是什么,返回类型是什么。
2.函数声明一般出现在函数的使用前。需要满足先声明后使用。
3.函数的声明一般放在头文件中。
- 函数定义:
函数定义指函数的具体实现,交代函数的功能实现。
*为了高效且多人分工函数的编写任务 通常将函数进行分文件编写
建立一个源文件和一个头文件
将函数的声明放在头文件中 定义放在源文件中
最后在主文件中输入#include" "进行头文件引用
便可以使用函数啦!
七、今日总结:
1.程序中自带了很多函数可以供我们使用,学会使用库函数便于提高我们工作的效率,具体库函数的使用方法可以进入相关网站进行系列的查找(前提是英语要学好)
2.形式参数是实际参数的一份拷贝,如果需要进行实际参数的改变与影响需要进行传址调用,不需要的话则进行传值调用。
3.函数使用分为函数的定义 函数的声明 函数的调用 我们需要先声明需要用到的函数,不管其存在与否要调用就要先声明,定义函数后才可以调用函数。
4.在以后的工作中一个程序可能极其复杂,需要多人进行编写,在这种情况下将函数声明放置在头文件,定义放置在源文件,最后在某个地点用#include" "进行函数的调用可以大大提高效率。