- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例 7.9 变量的作用域。 #include stdio.h int x=999; /* 定义全局变量x */ void print_value(void); void main() { printf(%d\n,x); print_value(); } void print_value(void) { printf(%d\n,x); } 输出: 999 999 在程序的最开始处定义了变量x,在main()函数中用printf()显示x的值,然后调用函数print_value()再次显示x的值。可看到x并未作为一个实参传送到函数print_value(),而是直接作为 printf()中的一个实参。这是因为变量x的作用域包括了main()函数和print_value()函数。现对程序做一点小修改,将变量x的定义移到main()之内,则新的源程序如下: 例 7.10 变量的作用域。 #include stdio.h void print_value(void); void main() { int x=999; /* 定义局部变量x */ printf(%d\n,x); print_value(); } void print_value(void) { printf(%d\n,x); } 上述程序在编译时将会提示在第11行有错误——未定义变量x。这是因为变量x的定义位于main()函数内,它的作用域也只限于main()内,在print_value()函数内,变量x未被定义或者说是不可见的。上面两个例子的惟一区别在于变量x定义的位置,将x的定义移位,其作用域发生了变化。在例7.9中,x定义在函数的外部并位于文件的最前面,其作用域为整个程序,在main()函数与printf_value()函数内都是可访问的。在例7.10中,x定义在main()函数的内部,其作用域局限于main()函数中。 为了理解变量作用域的重要性,可复习一下在本章前面所讲的结构化程序设计思想。结构化方法将程序划分为分别执行特定任务的独立函数,为了具备真正的独立性,每个函数中的变量必须隔离以避免来自其它函数的干扰。函数之间的完全数据隔离并不总是必要的。但是,通过指定变量的作用域,程序员可更进一步地控制数据隔离的程度。 当使用一个变量时,需要首先在内存中给这个变量开辟相应的存储单元,这时可以说这个变量存在了,或说它处于生存期内。如果这个变量所占用的内存单元被释放,那么这个变量就不存在了,或说在生存期之外。所以生存期指变量在内存中占用内存单元的时间。当一个程序运行时,程序中所包含的变量并不一定在程序运行的整个过程中都占用内存单元,往往是在需要时占用内存,而在使用结束后释放内存,这样做可以提高内存单元的使用效率,所以就产生了变量的生存期问题。 7.5.2 动态存储和静态存储 内存中供用户使用的存储空间可分为程序区、动态存储区和静态存储区,如图7.3所示。 程序区用来存放程序代码,动态存储区和静态存储区用来存放数据,即数据与处理数据的程序是分离的,这是面向过程的程序设计方法的特点。 静态存储区即全局数据区,用来存放程序的全局数据和静态数据。 图 7.3 程序的内存使用 动态存储区又分为堆区和栈区。堆区用来存放程序的动态数据; 栈区用来存放程序的局部数据,即各个函数中的数据。 动态存储和静态存储是指C对数据存储的两种方式。动态存储是指存储一些数据的存储单元可在程序运行的不同时间分配给不同的数据,而静态存储是指存储单元在程序运行的整个过程中固定地分配给某些数据。 动态存储区中数据的生存期一般是程序运行中的某个阶段,而静态存储区中数据的生存期为整个程序运行过程。 决定数据存放在内存的哪个区域,是由变量定义时存储类型标识符和变量定义的位置所决定的。 7.5.3 局部变量 局部变量又称内部变量,是在一个函数内定义,其作用域限制在所定义的函数中。main()函数中定义的变量也是局部变量,像例7.10中的变量x那样,该变量在main()函数内定义,并像编译该程序所表明的那样,该变量仅在main()函数内是可见的,即main()函数中所定义的局部变量只能在main()函数内使用,不可在其它函数中使用,而且main()函数也不可以使用其它函数所定义的局部变量。函数的
您可能关注的文档
- CorelDRAW X3图形设计教程 第2版 作者 郭万军 项目7.ppt
- CorelDRAW X3图形设计教程 第2版 作者 郭万军 项目8.ppt
- CorelDRAW X3项目教程 中职 作者 糜淑娥 第1-2章 第2章.ppt
- CorelDRAW X3项目教程 中职 作者 糜淑娥 第3章.ppt
- CorelDRAW X3项目教程 中职 作者 糜淑娥 第4-5章 第4章.ppt
- CorelDRAW X3中文版实例教程 1CD 高志明 2.ppt
- CorelDRAW X3中文版实例教程 1CD 高志明 3.ppt
- CorelDRAW X3中文版实例教程 1CD 高志明 4.ppt
- CorelDRAW X3中文版实例教程 1CD 高志明 6.ppt
- CorelDRAW X3中文版实例教程 1CD 高志明 7.ppt
文档评论(0)