目录
定义函数
什么是函数?
- 函数是一块代码,接受林格或多个参数,做一个事,并返回零个或一个值。
- 可以先想像成数学中的函数。
- y=f(x)但需要将它转化成计算机能够识别的语言。
void sum(int begin,int end) //函数头
//void返回类型 //sum函数名 //(参数表)
{
int i;
int sum =0;
for ( i=begin; i<=end;i++){
sum += i;
}
peintf("%d到%d的和是%d\n",begin,end,sum);
} //{函数体}
具体格式:
函数类型(即返回值的类型) 函数名(类型 变量1,类型 变量2,........)形参(为完成该模块功能所必需要的数据)
{
声明部分(定义所需的变量)
语句(实现模块功能的语句)
}
无参函数:形参列表为空的函数。
(1)主调调用它时,不需要向它传递数据
(2)常用来执行一组固定的操作
有参函数:主调调用它时,需向它传递数据,会把数据通过形参传递给它
关于函数定义的几点说明;
- 每个形参应有自己的类型;
- 在定义函数时,应指定函数值的类型;
- 函数的返回值是通过函数中的return语句设定的;
- 如果函数类型和return语句中表达式的类型不一致,则以函数类型为准,即函数类型决定返回值类型。对数值型数据,系统会自动进行类型转换。
- 函数中可以有多个return语句,执行到哪一个return语句,哪个起作用。
函数最基本的框架:
#include<stdio.h>
int main()
{
return 0;
}
函数中的返回值
return语句格式:
return(表达式);或return表达式;或return;
功能:终止函数的运行,将返回值带回主调函数。
(1)若函数中没有返回值,return语句可以省略。
(2)return返回值类型和函数类型一致。
函数中的参数
定义在函数后面的括号中定义的参数叫形参,调用函数的时候传入的数据叫实参。
分类
实参分类
1.位置传参:通过位置按顺序传递
2.关键字传参:通过参数名指定参数进行传递
形参分类
1.必备参数/必需参数:定义几个就要传几个
2.默认参数(缺省参数):可传可不传,不传的情况下使用默认值。
3.不定长参数
*args:接受零个或多个位置的参数
**kwargs:接受零个或多个关键字参数
解释:
#位置传参/位置参数
res=add_number(数字,数字)
#关键字传参/关键字参数
#add_number(a=数字,b=数字)
##注意点:同时使用关键字和位置参数,位置参数写在前面,关键字参数写在后面,否责报错。
函数的调用
调用原则:主函数main调用其他函数,其他函数也可相互调用;如果是先调用,后定义,那么在调用之前要先先行声明。
函数的调用一般格式:函数名(<实际参数表>);
函数调用的位置:
- 作为单独的语句出现
- 出现在表达式中
- 作为实参出现在其他函数中
示例:
#include<stdio.h>
int max(int,int);
int main()
{
printf("%d",max(a,b));
return 0;
}
注意:当实际参数的个数.次序.类型与形式参数的个数.次序.类型不一致时,系统并不提示错误,后果却难以预测.