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

《高级语程序设计教学课件》第7章.ppt

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

* 例 全局变量说明(在同一文件中) int p=1,q=5; float f1(int a) { int b,c; …… } int f3() { …… } char c1,c2; char f2(int x,int y) { int i,j; …… } main() { int m,n; ……. } p,q的作用范围 c1,c2的作用范围 * int a=3, b=5; max(int a, int b) { int c; c = ab?a:b; return(c); } main() { int a=8; printf(max=%d, max(a, b)); } 运行结果:max=8 例 全局变量与 同名,_________起作用 局部变量 局部变量 * 7.7 变量的存储类型 静态存储区 动态存储区 程序运行期间分配固定存储空间 程序运行期间根据需要,动态分配存储空间 Extern Static Register auto 变量的存储类型规定了该变量数据在内存中的存储区域。在不同存储区域存储的数据,有不同的生存期。 * auto变量 定义:[auto] 数据类型 变量名 使用范围 函数中的形参 函数内部的变量 复合语句中定义的变量 说明:没有做特殊说明的变量都是auto变量 特点: 动态分配存储空间 退出函数后自动释放空间 * register变量 定义方法:register 数据类型 变量名 使用范围:函数内部 使用条件:当某些变量使用频繁时 优点:提高执行效率 int fac(int n) { register int i, f; for(i=1; i=n; i++) f = f*i; return f; } main() { int i; for(i=1; i=5; i++) printf(“%d!=%d”, i, fac(i)); } * static变量 定义方法:static 数据类型 变量名 使用范围:函数的内部和函数外部 特点: 在静态存储区分配存储单元,在程序的整个运行期间都不释放空间 静态变量是编译时赋初值,即只赋值一次 若静态变量不赋初值,则系统指定为0(对数值型)或空字符(对字符型) 局部静态变量在函数调用结束后仍然存在于静态存储区,但其他函数是不能引用的 * 静态变量举例 f(int a) { int b=0; static c=3; b=b+1; c=c+1; return (a+b+c); } main() { int a=2, i; for(i=1; i3; i++) printf(“%d”, f(a)); } 静态 存储区 动态 存储区 f: c 3 4 main: a 2 main: i 1 f: b 0 f: a 2 1 5 1 2 3 * extern变量 定义方法:extern 数据类型 变量名 说明 extern不是变量定义,只是扩展全局变量作用域 int p=1, q=5; float f1(int a) { int b,c; …… } int f3() { …… } char c1, c2; char f2(int x,int y) { int i,j; …… } main() { int m,n; ……. } extern char c1, c2; extern char c1, c2; * 自动赋初值0或空字符 不确定 编译时赋初值,只赋一次 每次函数调用时 其它文件 本文件 定义变量的函数或复合语句内 程序整个运行期间 函数调用开始至结束 静态存储区 寄存器 动态区 静态存储 动态存储 extern 全局static 局部static register auto 未赋初值 赋初值 作用域 生存期 存储区 存储方式 存储类别 全局变量 局部变量 变量存储类型 * 使每一个模块成为相对独立、功能单一、结构清晰、接口简单、容易理解的程序 每个模块可以独立设计算法,单独编写和测试 一个模块中的错误不易扩散和蔓延到其它模块, 众人可同时进行集体性开发 软件具有模块结构,软件开发工作如同搭积木,一个模块可以在不同程序中多次使用 * * * * C语言的这种表达式特性,使得程序的灵活性大大增强。我们可以在任何能够放置表达式的地方来放置函数表达式。如下例:   c=max(a,max(i,j));   这个例子是一条由赋值表达式构成的赋值语句。它有两个函数表达式( 第一个、 第二个)。第二个函数表达式作为第一个

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档