一、知识点
函数的定义:
1.函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数。例如:scanf(),printf()为库函数,cylinder(),fact()为自定义函数。
2.函数定义的一般形式:
函数类型 函数名 (形式参数表) /*函数首部*/
{
函数实现过程 /*函数体*/
}
3.函数的调用:任何的C语言执行,首先从主函数main()开始,如果遇到某个函数调用,主函数将暂停执行,转而执行相应的函数,该函数执行完后将返回主函数,然后再从原先暂停的位置继续执行。
4.函数调用过程:
Main() 函数运行到:
Volume=cylinder(radius,height);时,调用cylinder()函数,暂停main()函数,将变量radius和height的值传给形参r和h。
计算机转到执行cylinder()函数,形参r和h接受变量radius和height的值。
函数cylinder()执行“return result”,结束函数运行,带着函数的结果result,返回到main()函数的调用他的地方。
计算机从先前的位置继续执行,将返回值赋给变量volume,输出体积。
例:
Double cylinder (double r,doubke h)
(double result;’
Result=3.14*r*r*h;
Return result;
}
5.函数的分类:从用户角度看C语言函数分为两类:库函数和用户自定义函数;从形式上分为两类:无参函数:不需要向函数传递参数。Printstar()和有参函数:需要向函数传递必要的参数。Cylinder(r,h) max(a,b);从函数有无返回值看,分为两类:有返回值函数:函数经过运算,得到一个明确的结果,并需要回送该结果。Cylinder(r,h)Mac(a,b)无返回值参数:函数只是完成一系列操作步骤,不需要回送任何运算结果。Printstar() printmessage()
6.类型标识符:函数的类型,与return语句返回值的类型相同。可以理解为函数最终结果的类型;可以是任何一种有效的类型,却省时默认为整形。若函数无返回值,类型标识符为(void)
7.函数名:他的命名要符合c语言的标识符命名规则,由字母,数字和下划线组成,其中第一个字符必须是字母或下划线。
函数名必须唯一,不能与函数体内变量或形参名相同。
8.函数参数传递说明:
实参可以是常量,变量,表达式。但必须有确定的值。形参是变量,必须指定类型。在参数传递过程中,实参把值复制给形参。C语言中,参数的传递是“值传递”,即单项传递。数据只能由实参传递给形参,而不由形参传递给实参。形参和实参一一对应,数量一致,类型一致,顺序一致。形参在函数被调用前不占内存;函数调用时为形参分配内存,调用结束,内存释放。Return 的功能:结束函数的运行。带着运算结果返回主函数。如果return语句为:return ;则表示仅返回调用函数的调用点,不带返回值。在一个函数中,return语句可以多次出现,但每次执行职能有一个return语句被执行。
9.函数声明
a. 函数类型 函数名 (参数表)
double cylinder(double r,double h);只写函数定义中的第一行(函数首部),并以分号结束。
函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。如果是库函数,应在文件开头引用头文件。如果被调用函数定义在调用他的函数后边:应在主调函数中对被调函数作声明。在所有函数之前对被调函数作声明,此时在主调函数中就不必在作声明了。如果被调函数定义在调用他的函数的前边,在主调函数之前可以不加以声明。