- 1、本文档共107页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数库中的函数,以减少重复编写程序段的工作量。 6.1.2 函数分类: 1.从函数形式: 无参函数 有参函数 2.从用户角度: 用户自定义函数 标准函数(库函数):由系统提供3.从函数的返回值角度: 有返回值函数,调用该函数后可以得到返回值。 无返回值函数,调用该函数后没有返回值。 §6.2 函数的定义 一、 无参函数的定义类型说明符 函数名(){ 声明部分;语句部分;} 无参函数例子:二、有参函数定义类型说明符 函数名(形式参数列表){声明部分;语句部分;} 有参函数例子: 三 、 函数的参数形参: 即形式参数:定义函数时函数名后面括号中的变量名 实参: 即实际参数:调用函数时函数名后面括号中的表达式注意:形参与实参类型应一致,个数相同。若形参与实参类型不一致,自动按形参类型转换。 对函数的形参和实参的几点说明: 1.形参变量在未出现函数调用时,它们并不占内存中的存储单元。只有发生函数调用时,形参才被分配内存单元。调用结束后,形参所占的内存单元被释放。因此,形参只在函数内部有效,函数调用结束后不能使用该形参变量。 2.实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,必须有确定的值,以便将其值传给对应的形参。 3.形参只能是变量。 4.形参和实参在数量、类型、顺序应一致。 5.实参变量对形参变量的数据传递是“值传递”,是单向传值。 四 、 函数的返回值和函数的类型 函数的返回值是通过函数中的return语句获得的。 返回形式: return(表达式);或return 表达式;或return; 功能:使程序控制从被调用函数返回到调用(主调)函数中, 同时把返值带给调用函数。释放在函数的执行过程中分配的所有内存空间。 例:求两个整数的大者: 其执行过程:值传递方式 :函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。特点:形参与实参占用不同的内存单元,单向值传递。 注意:若函数类型与return语句中表达式值的类型不一致,按函数类型为准,自动转换。例如: 值传递方式举例: swap(int x,int y) { int temp;temp=x; x=y; y=temp; } #include stdio.h main() { int a=7,b=11;printf(“a=%d, b=%d\n,a,b);printf(swapped:\n);swap(a,b);printf(“a=%d,b=%d\n,a,b); } §6.3函数的调用 调用形式 无参形式: 函数名( ) 有参形式: 函数名(实参表) 函数的调用方式: 对被调用函数要求: 必须是已存在的函数 库函数: #include *.h 用户自定义函数: 函数类型说明 §6.4 函数的嵌套与递归调用 嵌套调用: C规定:函数定义不可嵌套,但可以嵌套调用函数 #include stdio.h int dif(int x,int y,int z); int max(int x,int y,int z); int min(int x,int y,int z); void main() { int a,b,c,d;scanf(%d%d%d,a,b,c);d=dif(a,b,c);printf(Max-Min=%d\n,d); } 递归调用:定义:函数直接或间接的调用自身叫函数的递归调用 §6.5 数组作为函数参数 数组元素作函数实参--值传递;此时形参为普通变量 数组名作函数参数--地址传递;此时实参为数组名,形参为数组名或指针变量 6.5.1 数组元素作函数实参举例6.10: swap1(int x,int y) { int t; t=x;x=y;y=t; } main() { int a[2]={2,4}; printf(“\na[0]=%d,a[1]=%d\n”,a[0],a[1]); swap1(a[0],a[1]); printf(“a[0]=%d, a[1]=%d\n”,a[0],a[1]); } 数组名作为函数参数举例6.11: 6.5.3 用二维数组名作函数参数 二维数组元素可以作为实参,这点与一维数组元素以及简单变量作实参相同。 可以用二维数组名作为实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。如int a[3][10];或int a[ ][10];二者都合法而且等价。但是不能把第二维大小说明省略。如下面是不合法的: int a[ ][
您可能关注的文档
- 三辐射与靶材料化学(非生物靶)1.ppt
- 三连开展边境法律法规宣传教育活动.doc
- (整理)第三课文化的多样性与文化传播[配套课件].ppt
- 0密码协议(不经意传输和掷硬币协议).ppt
- 三里坪水电站碾压混凝土双曲拱坝施工管理综述.doc
- 06-1WAN技术简介--WAN基础.ppt
- 三采区辅助采区排水方案设计.doc
- 10-十八世纪欧洲启蒙运动时期的文学.ppt
- 11邓稼先_ppt.ppt
- 11《邓稼先》1课件.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)