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

第七章_变量的存储类型.ppt

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

第七章变量的存储类型 变量的作用域 变量的作用域:变量有效的范围。 C语言中所有的变量都有自己的作用域。 变量说明的方式不同,其作用域也不同。 C语言的变量,按作用域范围可分为两种:局部变量和全局变量。 局部变量—内部变量 定义:在函数内定义,只在本函数内有效 说明: main中定义的变量只在main中有效 不同函数中同名变量,占不同内存单元 形参属于局部变量 可定义在复合语句中有效的局部变量 全局变量—外部变量 定义:在函数外定义,可为本文件所有函数共用。 有效范围:从定义变量的位置开始到本源文件结束,及有extern声明的其它源文件。 变量的存储类型 动态变量与静态变量 存储方式 静态存储:程序运行期间分配固定存储空间 动态存储:程序运行期间根据需要动态分配存储空间 变量存储类型 内部函数和外部函数 函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否被其它源文件中的函数调用呢? C语言把函数分为两类: 内部函数 外部函数 内部函数 如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函数。 定义内部函数的一般形式是: static 类型说明符 函数名(形参表) 例如:static int f(int a,int b) 内部函数也称为静态函数。但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。 外部函数 外部函数在整个源程序中都有效,其定义的一般形式为: extern 类型说明符 函数名(形参表) 例如:extern int f(int a,int b) 如在函数定义中没有说明extern或static则隐含为extern。在一个源文件的函数中调用其它源文件中定义的外部函数时,应 用extern说明被调函数为外部函数。 小结 可从三个方面对变量分类,即变量的数据类型,变量作用域和变量的存储类型。在第二章中主要介绍变量的数据类型,本章中介绍了变量的作用域和变量的存储类型。 变量的作用域是指变量在程序中的有效范围, 分为局部变量和全局变量。 变量的存储类型是指变量在内存中的存储方式,分为静态存储和动态存储,表示了变量的生存期。 * * 变量是对程序中数据的存储空间的抽象 内存 ……. main() { int a; a=10; printf(“%d”,a); } 编译或函数调用时为其分配内存单元 10 2000 2001 程序中使用变量名对内存操作 变量的属性 数据类型:变量所持有的数据的性质(操作属性) 存储属性: 存储器类型:寄存器、静态存储区、动态存储区 生存期:变量在某一时刻存在——静态变量与动态变量 作用域:变量在某区域内有效——局部变量与全局变量 变量定义格式:[存储类型] 数据类型 变量表; 例: int sum; extern int a,b,c; register int i; static float x,y; float f1(int a) { int b,c; ……. } char f2(int x,int y) { int i,j; …… } main() { int m,n; ……. } a,b,c有效 x,y,i,j有效 m,n有效 例:不同函数中同名变量 main() { int a,b; a=3; b=4; printf(main:a=%d,b=%d\n,a,b); sub(); printf(main:a=%d,b=%d\n,a,b); } sub() { int a,b; a=6; b=7; printf(sub:a=%d,b=%d\n,a,b); } 运行结果: main:a=3,b=4 sub:a=6,b=7 main:a=3,b=4 应尽量少使用全局变量,因为: 全局变量在程序全部执行过程中占用存储单元 降低了函数的通用性、可靠性,可移植性 降低程序清晰性,容易出错 定义 声明 次数: 只能1次 可声明多次 位置: 所有函数之外 函数内或函数外 分配内存: 分配内存,可初始化 不分配内

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档