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

C语言第十一次课.ppt

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

* 1。靜态局部变量在静态存储区分配内存单元,在整个程序运行期间都不释放 2。为静态局部变量赋初值是在编译时进行的,即只赋初值一次,在程序运行时已有初值。以后每次调用时不再重新赋初值而只是保留上次调用结束时的值。 * 如果在定义点之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”。表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。 程序执行期间该变量始终存在 * 如果在定义点之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”。表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。 * 外部变量是在函数的外部定义的,它的作用域为从变量的定义处开始,到本程序文件的末尾。 外部变量属于静态存储方式: (1)静态外部变量──只允许被本源文件中的函数引用 其定义格式为: static 数据类型 外部变量表; (2)非静态外部变量──允许被其它源文件中的函数引用 定义时缺省static关键字的外部变量,即为非静态外部变量。其它源文件中的函数,引用非静态外部变量时,需要在引用函数所在的源文件中进行说明: extern 数据类型 外部变量表; 注意:在函数内的extern变量说明,表示引用本源文件中的外部变量!而函数外(通常在文件开头)的extern变量说明,表示引用其它文件中的外部变量。 * 一、??? 内部函数 如果一个函数只能被本文件中其他函数所调用,称为内部函数。(也称静态函数) 在定义前加static 二、??? 外部函数 1) 在定义时,如果首部左端冠以extern ,则表明是 外部函数,可供其它文件调用。 2) 在需要调用此文件中用extern声明所用的函数是外部 函数。 关于局部变量的作用域还要说明以下几点: 1.主函数main()中定义的内部变量,也只能在主函数中 使用,其它函数不能使用。同时,主函数中也不能使用其它 函数中定义的内部变量。因为主函数也是一个函数,与其它 函数是平行关系。这一点是与其它语言不同的,应予以注意。 2.形参变量也是内部变量,属于被调用函数;实参变量, 则是调用函数的内部变量。 3.允许在不同的函数中使用相同的变量名,它们代表不同的 对象,分配不同的单元,互不干扰,也不会发生混淆。 4.在复合语句中也可定义变量,其作用域只在复合语句范围 内。 在函数外部定义的变量称为外部变量。以此类推,在函数外部定义的数组就称为外部数组。 外部变量不属于任何一个函数,其作用域是:从外部变量的定义位置开始,到本文件结束为止。 外部变量可被作用域内的所有函数直接引用,所以外部变量又称全局变量。 对于全局变量还有以下几点说明: (1)外部变量可加强函数模块之间的数据联系,但又使这些函数依赖这些外部变量,因而使得这些函数的独立性降低。 从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用外部变量。 (2)在同一源文件中,允许外部变量和内部变量同名。在内部变量的作用域内,外部变量将被屏蔽而不起作用。 (3)外部变量的作用域是从定义点到本文件结束。如果定义点之前的函数需要引用这些外部变量时,需要在函数内对被引用的外部变量进行说明。外部变量说明的一般形式为: extern 数据类型 外部变量[,外部变量2……]; 注意:外部变量的定义和外部变量的说明是两回事。外部变量的定义,必须在所有的函数之外,且只能定义一次。而外部变量的说明,出现在要使用该外部变量的函数内,而且可以出现多次。 * #include stdio.h int x[2]={1,2}; void swap( ) { int t; t=x[0]; x[0]=x[1]; x[1]=t; } void main() { swap( ); printf(x[0]=%d,, x[0]); printf(x[1]=%d, x[1]); } 例 全局变量的优点 x[0] x[1] 有 效 * 作用范围从定义起到文件尾 变量的作用域 与局部变量同名时被屏蔽 定义:在函数外部定义的变量 全局变量 说明: 3) 未初始化初值为0 或\0 4) 能够加强函数间数据联系 降低程序清晰性,容易出错 * 变量的存储类别 动态存储 程序运行时根据需要动态分配存储空间 静态存储 程序运行时占据固定的存储空间不释放 程序区 静态存储区 动态存储区 形式参数、自动变量 全局变量、静态变量 * 变量的存储类别 自动存储 #include stdio.h void main( )

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档