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

北京交通大学C语言上概要.ppt

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

* 作用域是静态概念,一个变量的作用域是一段源程序。 如在函数体开始定义的变量,作用域是整个函数体。 生存期是动态概念,程序执行的一段时间。 变量在生存期中保持其存储单元,不经赋值那里的值就不变。 在作用域和生存期方面,外部变量和局部变量性质不同。 变量的作用域决定了其生存期 * 外部变量:在所有的函数之外定义的变量称为外部变量(或叫做全局变量)。其作用范围是从变量定义的位置开始,直到本源文件的结束。 局部变量:在一个函数内部定义或复合语句内定义的变量,其作用范围为函数体内部或复合语句内。 从作用域的角度: 外部变量:占有固定存储单元,整个程序范围内有值。 局部变量:占有临时存储单元,进入函数或复合结构时分配临时存储单元(变量存在有值),退出函数或复合结构执行结束,释放存储单元(变量消失无值)。 从生存期的角度: * 1、一个源文件可以包含一个或几个函数. 2、外部变量可以被本源文件的所有函数共享. 3、外部变量的设置增强了函数间数据的联系.一个函数对外部 变量的值的改变将会影响到其他的函数中. 4、建议在只有必要时才设置外部变量. 5、外部变量在文件的开头定义,则它的有效范围是整个源文件, 但如果全局变量不是在开头定义的,则它有效范围是从定义 点到源文件的结束. 6、外部变量可以后定义先使用,或在一个源文件里定义在其他 文件使用。使用前应给出外部变量说明(该变量一定在其它地方有定义)。形式:前面加关键词extern。   例:extern int n, m; 本程序可以使用该变量。 外部变量的要点: 外部说明通常放在源文件最前面,供整个文件参照 。 更重要的:保证整个程序参照同一说明,保证一致性。 int p=1,q=1; /*定义外部变量p,q*/ void float f1(int a) /*定义函数f1*/ {int b,c; … } char c1,c2; /*定义外部变量c1,c2*/ void char f2(int x,int y)/*定义函数f2*/ {int i,j; … } int main() {int m,n; … } 外部 变量p,q的有 效范围 外部 变量c1,c2的有 效范围 * …… int num; extern int exnumber; int f(int n) { int n; ….n…num…extnumber… ……. } int exnumber; int main( ) { …f( …)… …. num…extnumber… ……. } 外部变量定义 外部变量说明 如果一个函数定义用到外部变量,它就依赖这些变量,不再独立。 注意: 定义和说明不同。定义要求创建被定义的对象;说明只指明其存在,必须另有定义,否则该说明无效。 外部变量可在整个程序用,在一个完整程序里不能有重名外部变量。否则连接时会出问题 不要与函数库里内容重名(标准库定义了一批外部名字)。 * 1、主函数(main函数)中定义的变量也只在主函数中有效; 2、不同的函数中可使用相同的变量名,它们代表不同的含义; 3、形参也是局部变量; 4、在一个函数内部可以使用复合语句来定义变量,这样的变 量只在本复合语句中有效; 5、当外部变量名与局部变量名相同时,则在局部变量的有效 范围内外部变量不起作用. 局部变量的要点 int a = 13, b = -8; int plus(int x, int y) { int z; z = x + y; a = a + b; printf(“%d\n”, a) return z; } int main() { int z; int a = 6; z = plus(a, b); printf(“%d\n”, z); printf(“%d\n”, a) return 0; } 例:分析下面的程序写出结果. 5 -2 6 * 从变量存在时间(生存期)角度来区分: 1、静态存储变量: 在程序运行期间分配固定的存储空间的方式。 2、动态存储变量: 在程序运行期间根据需要进行动态的分配存储空间的方式。 2 变量的存储类别 内存中用户区的划分 程序区 静态存储区 动态存储区 1.程序区:存放程序的代码; 2.静态存储区:存放全局变量和静态的局部变量; 3.动态存储区:存放 局部变量, 函数调用时的现场保护和返回地址; 存放在静态存储区中的变量的生存周期是程序的整个执行过程。 存放在动态存储区中的变量的生存周期是函数或复合语句的执行期间。 * 1、含义:指数据在内存中的存储方法。 2、划分:在c语言中将变量和函数的属性划分为: 数据类型 数据的存储类别.如:static int a,b; 3、存

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档