目录
1. 概述
函数是c程序基本组成单位,对具有特定功能的程序经行封装,可以避免代码的重复编写。
(1)优点:
- 使程序变得简洁、清晰;
- 有利于程序的维护与升级;
- 提高程序的开发效率;
- 避免代码的重复编写。
(2)特点:
- 功能性:具有特定的功能,功能是函数的灵魂;
- 独立性:除了比较的数据的传输,不受外界的干扰;
- 通用性:函数是解决某一类的问题,不是一个问题。
2. 分类
(1)从函数的定义:
- 系统函数;如printf()函数、scanf()函数、gets()函数等;
- 用户自定义的数:如int fun(int x)、void fun()等;
(2)从有无返回值:
- 有返回值:
int fun(int n) { 函数体; return 表达式: }
- 无返回值:
void fun(void/形参) { 函数体 }
(3)从函数的形式:
- 有参函数:在函数中需要函数参数的称之为有参函数。
int fun1(int x,int y,.....) { 函数体; return 表达式; } void fun2(int x,int y,....) { 函数体; }
- 无参函数:在函数中不需要函数参数的称之为无参函数:
int fun3(void) { 函数体; return 表达式; } void fun4(void) { 函数体; }
3. 函数的声明和定义
(1)函数的声明:
- 声明的格式:函数的返回值类型 函数名(参数列表);
- 声明的位置:理论上在函数的调用之前进行声明即可,一般在头文件与主函数之间进行声明;如果函数的定义是在函数的调用之前则不需要声明。
- 声明的目的:纠错处理,检测函数调用的格式跟函数的声明的格式是否一致;检测函数调用的时候传递的参数,函数的返回值,是否跟函数的声明格式一样。
- 函数的参数列表的作用:
1)数据 通过 函数参数列表 输入到函数的内部,输入的数据的个数代表参数列表中参数的个数,数据的类型表示形参的类型,形参列表相当于函数数据输入; 2)参数的格式:数据类型 参数名,如果有多个参数,则需要使用逗号隔开,每个参数的类型不能省略; 3)如果不需要输入数据给函数内部,则参数列表为空(不用写参数列表),或者写为void
(2)函数的定义:
#include <stdio.h>
int getFactorial(int n);//函数声明
int main()
{
int m = 6;
int sum;
sum = getFactorial(m); //传递m的数值
printf("%d 的阶乘 为 %d\n",m,sum);
return 0;
}
//函数的功能:求某一个十进制数据的阶乘
int getFactorial(int n) //函数声明
{ //函数的开始
//1. 函数的形参是属于函数内部的变量,在函数的内部不能定义跟形参变量名同名的变量
//2. 形参是用于接收函数外部传递的数据,需要将其当做已知值使用
//3. 一般对形参变量不需要写值
//4. 形参变量 是局部变量,不同函数内部的局部变量名可以相同
int sum = 1;
int i ;
if(n < 0 || n > 12)
{
return 0; //数据如果超过范围则返回0。程序提前结束
}
for(i = 1; i <= n; i++)
{
sum = sum *i;
}
return sum;
}
4. 函数的调用
我们需要用到自定义的函数的时候,就得调用它,那么在调用的时候就称之为函数调用。在C语言中,函数调用的一般形式为:
函数名([参数]);
注意:
- 对无参函数调用的时候可以将[]包含的省略。
- []中可以是常数,变量或其它构造类型数据及表达式,多个参数之间用逗号分隔。
- 函数的调用原理: