欢迎来到天天文库
浏览记录
ID:20535763
大小:109.00 KB
页数:11页
时间:2018-10-13
《c语言程序设计a课程辅导(6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计A课程辅导(6)---第6章函数主要内容:一、函数的定义二、函数的调用三、变量的作用域四、递归函数五、函数指针六、函数应用举例一、函数的定义l函数定义格式[<有效范围>]<类型名><函数名>(<参数表>)<函数体>有效范围:由所使用的保留字extern或static决定,若使用extern则称为全局函数或外部函数;若使用static则称为局部函数或静态函数。若<有效范围>选项被省略,则默认为是全局函数。对于全局函数,能够在一个程序的其他每个程序文件中被声明和调用;对于局部函数,则只能被所在的程序文件声明和调用。类型名:给出函数通过return语句返回的值的类型,当使用保留字v
2、oid作为类型名时,则不需要返回值。函数名:是用户为函数所起的名字,它是一个符合C语言命名规定的标识符。通常用函数名反映该函数的功能。如用SUM表示求和。参数表:又称形式参数表,它包含有任意多个参数说明,当多于一个时其前后两个参数说明项之间必须用逗号分开。每个参数说明包括类型名和参数名两项内容。函数体:是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条或若干条C语句。函数头:在函数定义中,函数体之前的部分构成函数头,又称为函数原型。取出函数头再加上分号就构成该函数的原型声明语句。l函数定义格式举例(1)voidf1(){...}//返回无类型,无须返回值,函数名为f1//参数表为
3、空,即不带有任何参数。(2)staticvoidf2(intx){...}//文件域函数,无返回类型,函数名//为f2,带有一个int型参数x(3)intf3(intx,int*p){...}//全局域函数,返回值类型为int,//函数名为f3,带有2个参数,一个为整型x,另一个为整型指针p(4)char*f4(chara[]){...}//返回类型为字符指针,函数名为f4,//带有一个一维字符数组参数a,标记为后跟一对中括号(5)voidf5(floatc[][N],intm){...}//无类型,函数名f5,第//1个为二维单精度型数组参数c,第2个为整型参数m。11//标记是后跟两对
4、中括号,并在第2个内给出常量(列数)。l函数定义和使用的几点说明函数定义位置:可以出现在整个程序的任一个程序文件内的任何位置。函数原型声明语句:在利用函数调用表达式调用一个函数之前,必须出现有该函数的原型声明语句或函数定义。函数的常量形参:即在一般的形参说明项前加上const修饰。如:voidf6(constfloatx,floaty){...}//x常量形参,y一般形参voidf7(constchar*a,char*b){...}//a常量形参,b一般形参在f6函数体中只能读取x的值,不能改变它的值,对y可任意操作。在f7函数体中只能读取a所指的字符或字符串,不能改变它,对b任意。一维数
5、组参数说明项的格式:<数据类型><数组名>[]等价于指针参数说明:<数据类型>*<指针变量名>指针变量名就是数组参数说明中的数组名。如一个函数定义中的数组参数说明inta[]//数组参数说明,指向int类型元素的指针int*a//等价于指针参数说明当调用它们时,对应的实参为同类型的数组名,访问它们既可以是指针方式也可以是下标方式。二维数组参数说明项格式:<数据类型><数组参数名>[][<列数>]等价的指针参数说明:<数据类型>(*<指针参数名>)[<列数>]如假定一个函数定义中的:二维数组参数说明:floatc[][N]//指向N个float类型元素的指针等价的指针参数说明:float(*
6、c)[N]当调用它们时,与c对应的实参为具有相同列数N的二维数组名,访问它们既可以是指针方式也可以是下标方式。l编写具体函数定义举例例1:编写一个函数定义,求3个整数中的最大值。intMaxValue(intx,inty,intz)//用x,y,z分别表示3个整数形参{intw;//w作为临时变量,存放大者if(x>=y)w=x;elsew=y;//x和y中的大者赋给w保存if(w>=z)returnw;elsereturnz;//返回w和z中的大者}例2:编写一个函数定义,求n个整数中的最大值。分析:n个整数用一个一维数组a来表示,n也是一个整型参数,采用顺序比较的方法查找出数组a[n]
7、中的最大值。intMaxArray(inta[],intn)//数组参数和表示数组长度的参数{//inta[]可改为int*aintx,i;//用x保存当前比较中的大者,i为循环变量x=a[0];//把a中第1个元素值赋给xfor(i=1;ix)x=a[i];returnx;//返回最大值11}二、函数的调用l函数调用格式<函数名>(<实际参数表>)函数调用:又
此文档下载收益归作者所有