一.函数是什么?
- 在某个程序中,由一个或多个代码块组成的完成某个特定功能的部分就是函数。
- 一般需要输入参数并且带有返回值。
二.C语言中的函数分类
1.库函数
库函数就是编译器本身已经编辑好的函数,可以直接使用用来完成某个功能。
例如:printf(打印)、scanf(从键盘获取输入)这些都是库函数,直接将参数按照对应格式输入其中就能够实现某些功能。
1.1.如何使用库函数
我们参照例子来进行学习:
printf函数是库函数中能够对内容进行打印输出的函数,它的使用格式是
printf("%d",a) ----> %d是要打印的参数的类型,a则是这个参数,我们要想使用一个库函数只需要知道它需要你输入的参数的类型,然后进行对应的输入即可。相应的输入参数类型查询可以参考cplusplus等网站。
2.自定义函数
自定义函数是编译器中库函数不包含的函数,需要自己设计相对应的参数以及返回值,并且函数的功能的实现需要靠自己编写代码来实现。
例如下面代码块中的Add函数就是一个自定义函数。
#include <stdio.h>
int Add(int a,int b)//int(函数的返回类型) Add(自定义函数名) int a(接收的参数) int b(接收的参数)
{
int num=a+b;
return num;//返回值,即函数使用成功后会出现在主函数中的值
}
int main()
{
int x=1;
int y=2;
int sum=Add(x,y);//由于Add(x,y)的返回值是num,所以可以用用int类型来接收
printf("%d",sum);
}
?三.形式参数(形参)和实际参数(实参)
1.什么是形式参数
#include <stdio.h>
int Add(int a,int b)
int num=a+b;
return num;
}
int main()
{
int x=1;
int y=2;
int sum=Add(x,y);
printf("%d",sum);
}
上述代码块中,函数Add中的a和b并没有实际的数值,他需要依赖下面主函数的赋值才有实际的数值,因此我们把它称作形式参数,即形式意义上的参数,但是没有实际数值。
2.什么是实际参数
#include <stdio.h>
int Add(int a,int b)
int num=a+b;
return num;
}
int main()
{
int x=1;
int y=2;
int sum=Add(x,y);
printf("%d",sum);
}
而该代码块中的主函数main中,x和y的值分别是1和2,那么这两个参数就有实际的数值,拥有实际数值的参数就被称作实际参数
3.形式参数和实际参数之间的联系
当函数调用时,形式参数是实际参数的一份临时拷贝,所以对形式函数的修改并不会对实际参数进行修改
四.函数的调用
1.传值调用
函数的形参和实参分别占用不同的内存空间,对形参的改动不会影响实参
2.传址调用
- 将函数外部所创建的变量的内存地址传递给函数参数的一种调用函数的方法
- 形式参数所指向的实际参数的地址,那么对形参的改动也会造成实参发生改变,也就是函数内部可以直接操作函数外部的变量的改动
五.函数的声明和定义
1.函数声明
- 告诉编译器你的函数的返回类型、函数名、参数,但是具体函数是否存在函数声明无法决定,得看你有没有进行函数的创建
- 函数要满足先声明后使用的规则
- 函数的声明一般放在头文件中即xxx.h文件中
2.函数定义
函数的具体实现,即编写代码来实现函数的具体功能
|