版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用型系列教材C语言程序设计第七章函数函数概述01在C语言中可以从不同的角度对函数分类。从函数定义的角度来看,可以分为库函数和用户自定义函数两种。C语言的函数兼有其他语言中的函数和过程两种功能。从主调函数和被调函数之间数据传送的角度来看,又可以分为无参函数和有参函数两种。函数概述01在C语言中可以从不同的角度对函数分类。从函数的作用范围来看,又可以分为外部函数和内部函数两种。C语言提供了极为丰富的库函数,这些库函数又可以从功能角度进行分类。函数概述01函数的定义0201无参函数的定义
无参函数的定义无参函数定义的语法格式如下:类型标识符
函数名()//函数首部{声明部分
//函数体
语句部分}02有参函数的定义
有参函数的定义有参函数定义的语法格式如下:类型标识符
函数名(形式参数表列)//函数首部{声明部分
//函数体
语句部分}函数的参数和函数的值03函数的形参和实参具有以下4个特点:形参变量只有在函数调用时才会分配内存单元,在函数调用结束时,即刻释放所分配的内存单元。实参可以是常量、变量、表达式、函数调用等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。形参和实参01函数的形参和实参具有以下4个特点:实参和形参在数量上、类型上、顺序上要严格一致,否则会发生类型不匹配的错误。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。形参和实参01函数的值只能通过return语返回主调函数。函数返回值的类型和函数定义中函数的类型应该保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。在函数定义时如果省略函数类型,则函数返回值为整型。为了使程序具有良好的可读性并减少出错,即使函数类型为整型,也不要使用系统的缺省处理。函数的返回值02函数的返回值如果被调用函数中没有cturn语,并不带回一个确定的、用户所希望得到的函数值,但实际上,函数并不是不带回值,而只是不带回有用的值,带回的是一个不确定的值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。02函数的调用0401函数调用的语法格式
函数调用的语法格式函数名([实参表列])02函数调用的方式
函数调用的方式函数语句函数表达式函数实参03函数的声明
函数的声明要完成函数调用,被调用函数必须满足以下条件。必须是已存在的函数,也就是函数已有完整的定义。在函数调用之前必须有相应的函数声明。如果是系统定义的库函数,则需要将包含函数原型声明的头文件包含进来。函数的嵌套调用05函数的嵌套调用函数的嵌套调用01函数的递归调用06函数的递归调用是指一个函数在它的函数体内,直接或间接地调用它自身。C语言允许函数的递归调用。在递归调用中,调用函数又是被调用函数,执行递归函数将反复调用其自身。每调用一次就进入新的一层。函数的递归调用01数组作为函数的参数07数组元素与普通变量并无区别。因此它作为函数实参使用与普通变量使用是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,可以实现单向的值传送。数组元素作为函数实参01使用数组名作为函数参数与使用数组元素作为实参的不同点:当使用数组元素作为实参时是按普通变量对待的。当普通变量或数组元素作为函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。数组名作为函数的参数02局部变量和全局变量0801局部变量
局部变量在一个函数的内部定义的变量就是局部变量(又称为内部变量),它只在本函数范围内有效。也就是说,只能在本函数内使用,在本函数的外面是不能使用的,因此称它为局部变量。02全局变量
全局变量一个源程序文件可以有若干个函数,在函数内定义的变量是局部变量,而在一个源程序文件中所有函数之外定义的变量称为外部变量,外部变量是全局变量(也称为全程变量)。变量的存储类型0901静态存储方式与动态存储方式
用户存储空间程序区静态存储区动态存储区01静态存储方式与动态存储方式
动态存储区存放:函数形式参数自动变量(未添加static声明的局部变量)函数调用时的现场保护和返回地址02auto变量
auto变量在函数中定义的内部变量,如果不专门声明为static存储类别,则其存储类别默认都是自动变量(auto),数据存储在动态存储区中。03使用static声明局部变量有时希望函数中局部变量的值在函数调用结束后不消失而保留原值,即不释放占用的存储空间,这样在下一次该函数又被调用时,就是上一次函数调用结束时的值,在这种情况下就应该将该变量使用关键字static声明为静态局部变量。04register变量在一般情况下,变量(包括静态存储方式和动态存储方式)的值是存放在内存中的。为了提高效率,C语言允许将局部变量的值存放在CPU的寄存器中,这种变量被称为“寄存器变量”,使用关键字register进行声明。05使用extern声明外部变量外部变量(全局变量)是在函数的外部定义的,它的作用域从变量定义处开始,到本程序文件的末尾。程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年信阳固始县消防救援局招聘政府专职消防队员、消防文员18名农业考试参考题库及答案解析
- 2026广东惠州市中心血站招聘工作人员1人农业考试模拟试题及答案解析
- 2026年4月福建厦门市人力资源和社会保障局所属事业单位厦门技师学院简化程序招聘专职教师4人农业考试模拟试题及答案解析
- 2026年4月安徽钱营孜发电有限公司社会招聘1人农业考试备考试题及答案解析
- 测试车间关键功能失效模式分析制度
- 2026福建临港智链科技有限公司直聘人员招聘14人农业笔试备考题库及答案解析
- 2026河北廊坊市消防救援局招聘政府专职消防队员147人农业考试模拟试题及答案解析
- 2026年安徽工业大学教学及教辅等岗位公开招聘6名农业考试备考题库及答案解析
- 2026江苏南通市崇川初级中学招聘政府购买服务岗位人员农业考试备考试题及答案解析
- 涂装前检测缺陷判定流程制度
- 三维网植草护坡技术方案与施工流程
- 光面爆破工程技术设计规范
- 2026-2030年学校十五五德育发展规划(全文19103字 附工作任务总表及各年度计划表)
- 红细胞叶酸课件
- 2026年漯河职业技术学院单招职业技能考试必刷测试卷附答案
- DB65∕T 4464.5-2021 退化草地修复治理技术规范 第5部分:高寒草甸类
- 2026年辽宁职业学院单招(计算机)考试备考题库必考题
- 护理人员在康复护理中的角色定位
- 卫生事业单位招聘考试真题及答案汇编
- 视频会议设备调试要求
- 2023年昆明辅警招聘考试真题含答案详解(完整版)
评论
0/150
提交评论