网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计曹玲焕孙萍主编第七章节.ppt

C语言程序设计曹玲焕孙萍主编第七章节.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、 函数的调用 (一)、函数调用可以有两种方式 (二)、函数的参数传递 (三)、函数调用的语法要求 (一)函数调用可以有两种方式 函数调用出现在表达式中 例:c = max(a,b)是一个赋值表达式 函数调用以语句的形式出现 例:若调用hello函数,可用以下语句: hello(); (二)、函数的参数传递 计算实在参数的值,为形式参数分配存储单元,将实在参数的值传给对应的形式参数。 通过return语句将返回值返回到调用处,释放形式参数所分配的内存单元。因此,形参只在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量。 函数之间还可以通过全局变量传递参数,将在本章后续内容中介绍。 在C语言中,数据只能从实参传给形式参数,而不能把形式参数的值传回给实在参数,称为“按值传递”,既单向传递。 (三)、函数调用的语法要求 函数调用的语法要求 函数调用时,函数名必须与定义的函数名完全一致。 实参可以是常量、变量、表达式、函数等,在进行函数调用时,它们都必须具有确定的值,实参的个数必须与形参的个数相等,顺序一致,类型匹配,否则会发生“类型不匹配”的错误。 被调函数类型是int或char以外的函数,应先定义或说明,后使用。 四、函数的说明 (一)、函数说明的形式 其一般形式如下: 数据类型 函数名(类型名 形式参数1,类型名 形式参数2,……); 或者也可以省略形式参数的名字,写成下面形式: 数据类型 函数名(类型名1,类型名2……); 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用 当被调函数的定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用 (二)函数说明的位置 函数说明可以放在两个位置: 主调函数的说明部分 所有函数外部,被调用之前 六、变量的存储类别 变量定义的一般形式如下: 存储类型标识符 数据类型 变量名[,变量名,……]; (一) auto变量:局部变量可以定义为auto型,而全局变量不能被说 明成此类型对于局部变量,如果没有指定存储类型、或使用了 auto说明符,糸统就认为所定义的变量具有自动类别。因此, int x;等价于auto int x; auto变量的存储单元被分配在内存的动态存储区。每当进入函数体或复合语句时,糸统自动为auto变量分配存储单元;退出时自动释放这些存储单元另作它用。因此,这类局部变量的作用域是从定义的位置起,到函数体或复合语句结束为止。所有自动类存储单元都是在进入这些局部变量所在的函数体或复合语句时生成,退出其所在的函数体或复合语句时消失。这就是自动类局部变量的“生存期”。当再次进入函数体或复合语句时,系统将为它们另行分配存储单元;未赋初值的自动变量其值不确定。 自动变量的赋初值是在程序运行过程中进行的,每进入一次函数体或复合语句,就赋一次初值。 寄存器变量也是自动类变量。它与auto类变量的区别在于:用register定义的变量占CPU中的寄存器,而auto类的变量占用内存的动态存储区。程序运行时访问寄存器的速度要比访问内存的速度快得多。因此,当程序对运行速度有较高要求时,把那些频繁引用的少数变量定义为寄存器类型,可以显著地提高运行速度。 在使用寄存器类型的变量时需要注意: (1)CPU中的寄存器是有限的,因此只能说明少量(两个左右)的寄存器变量。 (2) register型变量的值是存放在CPU中的寄存器中,而不是放在内存中,所以register型变量没有地址。也就不能对它们进行求地址运算。 (3)register型变量的说明应尽量放在靠近使用的地方,用完之后尽快释放,以提高寄存器的利用率。 (4)局部变量可以说明为register型,而全局变量不能被说明成此类 型。 (三) static变量 static变量的存储单元被分配在内存的静态存储区中,它们在程序开始运行前就分配了固定的存储单元,在程序运行过程中占用的存储单元始终不变,只有在程序结束后,才释放所占用的内存单元。 对于局部变量和全局变量都可以说明成static类型。 静态局部变量如果进行初始化,只有第一次执行定义语句时随着定义而进行初始化。当退出所定义的函数或复合语句时,将保留当时值,再次进入所定义的函数或复合语句时,不重新定义,所以也不重新初始化,此时,该变量的值是上次离开时的值。静态局部变量如果不进行初始化,C语言编译系统将自动为其赋予零。 例:stati

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档