第4讲 内与存存储 .pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲 内与存存储

第4讲 内存存储 ★ 几个概念: ⑴ 作用域-----变量能够起作用的程序范围。 从作用域的角度区分,变量可分为: 全局变量和 局部变量 ⑵ 生存期----变量在内存中存在的某一时间范围。 从生存期的角度区分,变量可分为: 静态变量和 动态变量 ★ 局部变量的作用域 局部变量-----在函数内部定义的变量。局部变量在定义它的函数内有效,不能在函数外使用。函数的形参也是局部变量。 int f1(int a) /*函数f1, 形参a在f1中有效*/ { int v1,x; /* 局部变量v1,x 在f1中有效*/ …… } int f2(void) /*函数f2*/ { int v2,x,y; /* 局部变量v2,x,y 在f2中有效*/ ……} void main() /*函数main*/ { int a,y; /* 局部变量x,y 在main中有效*/ …… x=f1(5); y=f2(); { int a,b; /* 局部变量a,b 在复合语句中有效*/ …… } } ★ 全局变量的作用域 全局变量-----在函数外部定义的变量。其作用域是从源程序文件中定义该变量的位置开始,到本源程序文件结束。位于全局变量定义后的所有函数都可以使用该变量。 说明: 全局变量是静态存储的,一直占据内存空间,直到程序结束,通过全局变量可在各函数间传递值,增加了函数间的数据联系。但是降低了模块的独立性,容易出错,副作用较大,尽量少用全局变量,而采用函数参数在函数间传递数据。 int a, b; /*定义 全局变量a,b*/ int f1( ) /*函数f1, 全局变量a,b在f1中有效*/ { …… } int c; /*定义 全局变量c*/ int f2( ) /*函数f2,全局变量a,b,c在f2中有效*/ { int b; /* 局部变量b 在f2中有效*/ …… } main( ) /*函数main,全局变量a,b,c 在main中有效*/ { …… } ★ 全局变量的存储类别 ◆ 全局变量存储在静态存储区,生存期为整个程序的运行期间。如果没有赋初值,则相当于赋初值0。 全局变量的存储类别:static(静态)、extern(外部) ◆ 用extern对全局变量加以声明,可以将其作用域扩充到整个文件或其它文件。 ◆用static对全局变量加以声明,可以将其作用域限制在定义该变量的文件中,不能被其它文件引用。 /*文件1*/ /*文件2*/ static int s; static int s; main( ) int f1( ) { { …… …… } } C程序的内存映像 8.10 内部函数和外部函数 函数的作用域是全局的,它的存储类别有两种:static 和extern ◆定义函数时,在函数名和类型前加上static,则此函数只能被本文件中的其它函数调用,不能被其它文件中的函数调用,称为内部函数(或静态函数)。 ◆使用内部函数(静态函数),可以使函数局限于该函数所在文件,如果在其他文件中有同名的内部函数,则互不干扰。 8.10 内部函数和外部函数 ◆定义函数时,在函数名和类型前加上extern(或者省略),则此函数可以被本文件和其它文件中的函数调用,称为外部函数。 ◆在需要调用此函数的文件中,要用extern声明所调用函数的原型。 ◆C语言规定,如果在定义函数时省略extern,则隐含为外部函数。 课后作业 课本P202 8.14 * * 本讲内容: (1)变量的存储类别 (2)C程序的内存映像 (3)内部函数和外部函数 在整个程序的运行时间内一直存在的变量。 只有在某函数的执行过程中存在的变量 ⑶变量的生存期由其存储类别决定,变量的存储类别有四种:auto、static、register、extern ⑷函数的存储类别:extern、static 8.9 变量的存储类别 补充说明: main( )中的变量;同名变量。 8.9 变量的存储类别 变量的存储方式分为两类:静态存储方式和动态存储方式 静态存储方式:在程序运行期间由系统分配固定的存储空间 动态存储方式:在程序运行期间根据需要动态 的分配存储空间 变量的存储类别分4种

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档