- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)); 这个例子是一条由赋值表达式构成的赋值语句。它有两个函数表达式( 第一个、 第二个)。第二个函数表达式作为第一个
您可能关注的文档
- 《高三语文复习料》文言文实词复习.ppt
- 《高三语文复资料》4、被动句 为所.ppt
- 《高三生物复习资料》第13,14讲 遗传的基本规律和细胞学基 自由组合定律.ppt
- 《高中地理 凯伦 教学必修二》2.2城市化过程与特点.ppt
- 《高三语文复习资料文言文断句.ppt
- 《高中地理 占凯伦 教学必修二》3.3.2工业区位因素工业地域联系.ppt
- 《高中地理 占凯伦 教学必修二》1.1人增长模式.ppt
- 《高中地理 占凯伦 教必修二》3.1产业活动的区位条件和地域联系.ppt
- 《高中政治教课件-于海》社会历史的主体.ppt
- 《高中地理 占凯伦 教学必修三》1.认识大洲—亚洲(2节).ppt
- 某常务副县长在年今冬明春低温雨雪冰冻灾害防范应对桌面推演会议上的讲话.docx
- XX县人大常委会党组年度工作汇报.docx
- 某市人大党员领导干部2024年度民主生活会“四个带头”对照检查材料4.docx
- 某市税务局征管科202X年上半年工作总结及下半年工作思路.docx
- 某县税务局党委领导班子年度民主生活会“四个带头”对照检查材料5.docx
- 某县税务局党委书记、局长在年度党支部书记抓基层党建述职评议会上的讲话.docx
- 某县人大常委会领导班子年度民主生活会“四个带头”对照检查材料.docx
- 某县委宣传部办公室2024年工作安排.docx
- 某县委组织部副部长、非公党工委书记述职述责报告.docx
- 市委书记在党代会各代表团召集人会议上的讲话5.docx
文档评论(0)