c语言程序设计ppt课件第四,C语言程序设计课件 第四章.ppt

《C语言程序设计课件 第四章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件 第四章.ppt(16页珍藏版)》请在人人文库网上搜索。

1、本章的主要内容包括c语言函数的概念、如何调用c提供的库函数以及如何定义和调用自己的函数。中的数据表示多文件构成c程序的方法变量生命周期中域c语言的数学函数。第4章函数和进程结构,返回主页,问题:(1)进程正在变长。难以理解,可读性下降。(2)重复代码增加可能导致特定程序多次运行。(3)特定问题的代码在其他类似问题上不再可用。必须重复原来的设计编码过程。函数是有效分解复杂描述和控制程序大小和复杂性的机制。需要抽象为函数的程序段:(1)功能独立且具有独立逻辑意义的程序段(2)重复发生的片段函数机制提供的优点:(1)可以多次调用函数,以缩短程序长度并保持函数语义的一致性。(2)提高程序可读性。(3)。

2、模块化,结构更强。两个观点:函数外部调用方的观点。从函数内部实现者的角度。4.1概述,在c程序中调用库函数需要两个步骤。1使用include命令表示库函数的相关定义和说明。Include命令必须以“#”开头,系统提供的头文件必须是.必须使用h作为文件后缀,文件名必须用一行尖括号或一对撇号括起来。以# include开头的程序行不是c语句,而是结尾的“;“没有附加的号码。2标准库函数调用库函数在函数名(查寻表)(1)表达式中调用:函数是表达式的操作数。例如:y=z * sin(x)0.5;(2)作为独立语句,您可以将其视为表达式语句,例如:printf (%dn ,a)。4.2库函数,c语言中定。

3、义的函数的一般形式如下:函数返回值类型名称函数名称(类型名称形参数1,类型名称形参数2) /*头*/说明部分/*函数体*/语句部分return语句格式:return表达式;或return(表达式);或returnReturn的角色:终止函数并返回函数值。4.3函数定义,对4.4.1函数的调用函数调用的格式如下:呼叫函数名称(实际引数清单)函数时,请注意下列事项:(1)调用名称必须与定义名称完全匹配。(2)实际参数数与几何参数数匹配;如果不匹配,类型匹配;自动转换;不兼容的赋值转换(指针和浮点类型等某些类型不能指定值)不显示错误消息;程序继续运行,但结果不准确。(3)可以嵌套调用。a函数调用b函。

4、数时,b函数再次调用c函数。c语言规定所有函数徐璐平行和独立。不允许嵌套定义(一个函数的定义包含另一个函数的完整定义),但可以嵌套调用。4.4函数的调用和说明,4.4.2函数说明在调用之前描述函数,称为函数的原型说明。格式如下:类型名称函数名称(参数类型列表或参数列表);为函数定义的第一个加分号;”的形式理解,用于验证调用中参数的数量和类型是否正确。因此,您只需要参数列表中的类型名称。例如,类型参数名称可以是任何自定义标识符,并且不一定与函数定义的形参数相同。4.4函数调用和说明,在c语言中,调用函数和调制函数之间的数据传递将(1)实际参数和几何参数之间的数据传递(2)return语句将函数值。

5、返回给调用函数。(3)通过全局变量。(本章稍后介绍全局变量)在c语言中,在实际参数和几何参数之间传递数据的方式称为值传递,数据只能从实际参数向一个方向传递。调用函数时,首先计算实际表达式的值,结果值分别分配给相应的形参数,进入函数体执行,形参数本身是函数的局部变量,调用时接收实际值的值。函数中几何参数的指定与实际参数参数无关。实际变量值保持不变。实际参与参数在传递值时暗示可能的转换。如果转换没有继续,则编译时会发生类型错误。c的函数调用机制很简单。值传递是c语言参数组合的唯一方法。如果继续,则可以看到数组名称和指针何时用作函数参数,这些数组名称和指针将传递这些属性,而不考虑实际参数组合的方式。。

6、4.5调用函数和优化函数的数据传递,递归函数是在函数执行过程中直接或间接调用函数本身的函数。前者称为简单递归,后者称为间接递归。迭代程序的执行过程迭代函数的特征:有终止迭代的明确条件。递归函数的有效递归与递归的关系4.7函数实例,4.6递归函数,4.8.1程序结构c语言规定不能在一个函数内部定义另一个函数,这样所有函数都在程序的表面定义,整个程序的结构更简单。程序结构说明了c程序函数和数据、如何组织变量定义,特别是需要多个文件组织程序时的程序单元,以及内容的组织问题。4.8.2变量的范围和存在时间在程序中定义变量时具有一定的意义。(1)可以给变量命名,程序可以通过名称操作该变量的存储空间,取值。

7、,并指定值。(2)定义此变量存储空间中数据的存在形式、范围和运算。(3)可以使用此变量的程序位置;(4)程序运行期间分配和撤消此变量的存储空间的时间。4.8变量的范围和寿命,4.8.2变量的范围和存在时间变量的范围:源程序的一部分,在此范围内变量定义有效,使用该变量名称与变量相关的操作中可用的每个变量都有一个“范围”,这取决于变量定义出现的位置。活动域变量的范围,定义的范围是源程序正文中划分相关段的源程序的一部分。因此,范围是静态概念。与程序执行过程无关。存在期间:变量在程序中存在的期间称为该变量的“”。存在时间是动态的概念。说明程式执行的持续时间,储存格中的值保持不变,储存的单位保持不变,除。

8、非重新指派变数。程序使用的内存存储空间分为三个部分:程序区域、静态存储和动态存储。4.8变量的范围和寿命、4.8.2变量的范围和存在存储类别表示变量在内存中的存储位置,有两种存储类别:静态和动态。有四个与存储类相关的说明符。“auto(自动)static(寄存器)extern(外部)”这些说明符通常与类型名称一起出现,可以放置在类型名称的左侧或右侧。前三个存储类别的声明和定义一起使用,不能分离。4.8.2.1全局变量的范围和存在持续时间在函数外部的任意位置定义的变量称为全局变量,也称为外部变量。变量从定义变量的位置开始,到源文件结束。全局变量只有具有完整程序执行持续时间的静态存储类别。讨论全局。

9、变量定义和使用注意事项徐璐讨论在其他函数之间使用相同的全局变量进行通信的功能及其优缺点。说明如何使用Extern和static说明符定义全局变量的徐璐不同点。4.8变量的范围和寿命,4.8.2变量的范围和存在周期4.8.2.2局部变量的范围和存在周期局部变量是在函数内部或复合语句内部定义的变量,这些变量仅在函数或复合语句主体内有效,不能在外部使用。您可以使用“Auto(自动)”、“static(静态)”、“register(注册)”说明符。1.auto变量如果在本地变量定义中使用auto说明符,或者未指定存储类,则假定定义的变量具有自动类。系统动态分配自动变量的存储空间,数据存储在动态存储中。。

10、局部变量的定义必须放在函数体或复合中所有可执行语句之前。自动变量的范围在定义的位置生效,直到函数体或复合体结束。进入具有这些局部变量的函数体(或复合)时,将生成相应的存储单元,退出该函数体(或复合)时,这些存储单元将消失。这是自动变量的存在周期。重新进入函数主体(或复合)时,将分别分配存储单位,因此不能保留变量值。讨论使用自动变量的优点。4.8变量的范围和寿命,4.8.2变量的范围和存在时间4.8.2.2局部变量的范围和存在时间2。register变量寄存器变量也是自动变量,与自动变量的区别在于,与register中介绍的变量不同,编译器建议您在CPU的寄存器中保留变量值,这与常规变量不同。局。

11、部变量的定义必须放在函数体或复合中所有可执行语句之前。讨论寄存器变量的特性和使用注意事项。3.static变量是在函数体(或复合)中被描述为静态局部变量的变量。静态局部变量的范围与自动变量、寄存器变量相同,但其存在时间本质上不同,直到程序执行结束。静态局部变量在静态存储中占据永久存储单位,函数结束后下一次进入函数,静态局部变量仍然使用原始存储单位。静态变量的特性和使用注意事项、4.8变量的范围和寿命、外部变量、静态变量(存储在静态存储库中)的定义在程序启动之前完成,初始化在程序执行之前只执行一次。初始化表达式具有严格的限制,在编译阶段,您只能使用获取常量值的表达式,而无需运行程序。将表达式按字。

12、面或字面组织为符号常量和基本运算符号,以初始化外部变量、静态变量。不能包含与赋值相关的各种运算(例如,-等)。如果在定义时不写入初始化,则在系统创建时自动初始化为0。对于存储在动态存储库中的局部变量,该函数或复合在程序执行过程中动态分配,对初始化表达式格式没有限制,只要符合类型约束即可。每次调用后存储设备将被禁用,下次调用时存储设备将重新分配,因此每次设置时必须重新初始化。如果在定义时不写入初始化,则分配的单元格的值不确定。在这种情况下,在程序中使用变量之前,必须为变量存储单位指定值。否则,变量值不确定。许多编译系统警告这种问题。4.8.3描述了变量初始化,内部函数和外部函数的特征。使用Ext。

13、ern和static说明符。使用内部和外部函数的优点。4.9如何组织和调试多文件程序4.9.1多文件程序组织方法教材中有关如何组织多文件程序的5点说明4.9.2多文件程序运行调试方法(1)编辑源文件(2)创建项目文件(3)打开项目文件(4)运行编译链接(5),4.8.4内部和外部函数,以及定义方法、说明指定、返回值、函数返回和函数调用。函数之间传递参数的规定。形状参与实际参数、参数传递方法和基于void的函数。变量的存储类型。变量存在的持续时间和范围概念、存储变量类型的四种方法、特性和使用范围、使用其他存储类型变量时的差异、初始化变量的方法以及在函数之间使用外部变量传递数据的规则。多文件程序的组织和实现方法常用库函数的使用方法。理解本章内容的关键是理解函数的参数传递机制和变量范围以及存在时间的概念。以返回本章的主页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值