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

[IT认证]C语言课程第4章zk.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[IT认证]C语言课程第4章zk

第一节 函数概念 二、函数的书写顺序 ? 形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。 ? 实参可以是常量、变量或表达式。 ? 必须指定形参类型,且必须与实参的类型一致。 ? 实参对形参的数据传递是“值传递”。即单向传递,不能逆传。 ? 函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。 ? return语句的后面可以有括号,也可以没有。如: return z ; ? return(z); ? return语句的后面可以是变量,也可以是表达式。如: return(x y ? x : y); ? return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。 一、函数调用的两种形式 1.没有返回值的调用 函数名(实参表); 2.有返回值的调用 变量名=函数名(实参表); 调用函数,可以有如下三种方式: ? 将函数调用作为一个语句。如: printf(“MS C pragramming”); gets(s); ? 将被调用的函数写在表达式中。如: c=2?max(a, b); 注意:被调用函数max必须有确定的返回值。 ? 将函数调用作为一个函数的实参。如: m=max(max(a, b), c); 4.对被调用函数的说明 在一个函数中调用另一个函数时: ? 如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如: #include “stdio.h” #include “math.h” 类型标识符 被调函数名( ); 如:float add( ); ? 如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必说明其类型。因为编译程序已知道其类型。 ? 如果被调函数的值是整型或字符型,可不必说明类型,系统自动按整型说明。 ? 如果在所有被调函数定义之前、在文件的开头、在函数的外部已对被调函数作了类型说明,则在各主调函数中可不必说明其类型。如: char letter( ); float f( ); int i( );? main( ) {……} /? 不必说明它所调用的函数的类型 ?/ 一、局部变量 在一个函数内部定义的变量,只能在本函数内使用和有效,称为“局部变量”。 ?主函数main中定义的变量,也只能在主函数内使用和有效。 ?不同函数中可以使用相同名字的变量,且互不干扰。 ?形式参数也是局部变量,也只能在所在函数内使用和有效。 ?可以在一个函数内的复合语句中定义变量,且这些变量只在本复合语句中有效。 这种复合语句也称为“分程序”或“子模块”。 ? 如无必要,不要使用全局变量。因为全局变量既降低程序的清晰性和函数的通用性,且又在程序的全部执行过程中都占用存储空间。 ? 在文件开头定义的外部变量才可在整个文件范围内使用,若在定义点之前的函数需引用外部变量,则可用关键字“extern”作“外部变量说明”。 注意:外部变量定义和外部变量说明并不是同一回事。外部变量的定义只能有一次,它的位置在所有函数之外。而同一程序中的外部变量说明可以有多次,它的位置在函数之内(哪个函数要用就在哪个函数中说明)。系统根据外部变量的定义(而不是根据外部变量的说明)分配存储单元。对外部变量的初始化只能在“定义”时进行,“extern”只是申明该变量是一个已在外部定义过的变量而已。 ? 如果在同一源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。 1.变量的存储类别 静态变量在程序的运行期间占用固定的存储空间,直到程序的终止而释放;而动态变量是在程序的运行期间随着函数的调用随时动态地占用和释放存储空间。即存储方式是根据变量的存储类别决定的。 C的存储类别有四种: 自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。 2.局部变量的存储方式 函数中的局部变量若未专门说明,都是由编译系统自动动态分配存储空间,这类局部变量称为自动变量,其类型说明前不论是否有关键字“auto”,都属于动态存储类别。 ? 局部静态变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。而动态变量在动态存储区分配存储单元,函数调用结束后即释放。 ? 局部静态变量在编译时只赋初值一次,以后每次被调用时不再重新赋值而只保留前次被调用结束时的值。动态变量赋初值不是在编译时而是在函数被调用时进行的,函数每次被调用时重新赋值,相当于赋值语句。 ? 静态变量若未赋初值,则在编译时自动赋初

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档