- 3
- 0
- 约2.28万字
- 约 81页
- 2017-11-12 发布于广东
- 举报
func(int n) { auto int a=2; a+=2; ++n; printf(func:n=%d a=%d\n,n,a); } main() { int a=0; func(1); printf(main:n=1 a=%d\n,a); a+=10; func(2); printf(main:n=1 a=%d\n,a); } 运行结果: func: n=2 a=4 main:n=1 a=0 func: n=3 a=4 main:n=1 a=10 2.静态变量(static类别) 除形参外,局部变量和全局变量都可以定义为静态变量。 局部静态变量(或称内部静态变量) 全局静态变量(或称外部静态变量) 静态变量 静态变量 static int a; main( ) { float x,y; … } f( ) { static int b=1; …… } 全局静态变量 局部静态变量 自动变量 不能省 ⑴ 内存分配 编译时,将其分配在内存的静态存储区中,程序运行结束释放该单元。 ⑵ 静态变量的初值 若定义时未赋初值,在编译时,系统自动赋初值为0;若定义时赋初值,则仅在编译时赋初值一次,程序运行后不再给变量赋初值 。 ⑶ 生存期 整个程序的执行期间。 ⑷ 作用域 局部静态变量的作用域是它所在的函数或分程序.全局静态变量的作用域是从定义处开始到本源文件结束。 静态变量 int n=1; func() { static int a=2; a+=2; ++n; printf(func:n=%d a=%d\n,n,a); } main() { static int a; /*静态局部变量初始化为0*/ printf(main:n=%d a=%d\n,n,a); func(); a+=10; printf(main:n=%d a=%d\n,n,a); func(); printf(main:n=%d a=%d\n,n,a); } 运行结果: main:n=1 a=0 func: n=2 a=4 main:n=2 a=10 func: n=3 a=6 main:n=3 a=10 int c; static int a; main( ) { float x,y; … } char s; f( ) { static int b=1; …… } 3.外部变量(extern类别) 在函数外定义的变量若没有用 static说明,则是外部变量。外部变量只能隐式定义为extern类别,不能显式定义。 全局静态变量 自动变量 局部静态变量 外部变量 ⑴ 内存分配 编译时,将其分配在静态存储区,程序运行结束释放该单元。 ⑵ 变量的初值 若定义变量时未赋初值,在编译时,系统自动赋初值为0。 ⑶ 生存期 整个程序的执行期间。 ⑷ 作用域 从定义处开始到本源文件结束。 此外,还可以用extern进行声明,以使其作用域扩大到该程序的其它文件中。 外部变量 问题:全局静态变量的作用域可以扩展到本程序的其它文件吗? 外部变量声明的一般格式 extern 数据类型 变量名1,…,变量名n; 或 extern 变量名1,…,变量名n; 注意: ①外部变量声明用关键字extern,而外部变量的定义不能用extern,只能隐式定义。 ②定义外部变量时,系统要给变量分配存储空间,而对外部变量声明时,系统不分配存储空间,只是让编译系统知道该变量是一个已经定义过的外部变量,与函数声明的作用类似。 4.寄存器变量(register类别) 只有函数内定义的变量或形参可以定义为寄存器变量。寄存器变量的值保存在CPU的寄存器中。 受寄存器长度的限制,寄存器变量只能是char、int和指针类型的变量。 main( ) { long int sum=0; register int i; for (i=1; i=1000; i++) sum+=i; printf(sum=%ld\n ,sum); } 程序输出结果: sum=500500 归纳变量的分类 1.按照变量的作用域对变量分类 ⑴ 局部变量 ⑵ 全局变量 2.按照变量的生存期对变量分类 ⑴ 静态存储变量 包括:局部静态变量和全局静态变量 ⑵ 动态存储变量
您可能关注的文档
- 企业信息化管理与应用课件作者袁清文第二章节企业信息化技术基础.ppt
- AutoCAD2006基础教程课件作者王群课件第12章节.ppt
- 企业信息化管理与应用课件作者袁清文第七章节信息系统的管理.ppt
- 企业信息化管理与应用课件作者袁清文第三章节企业管理信息化.ppt
- AutoCAD2007中文版应用教程课件作者郑运廷第03章节绘图辅助工具.ppt
- AutoCAD2007中文版应用教程课件作者郑运廷第04章节图层颜色.ppt
- 企业信息化管理与应用课件作者袁清文第十章节企业信息化发展与思考.ppt
- AutoCAD2007中文版应用教程课件作者郑运廷第10章节尺寸标注.ppt
- 企业形象策划实务第2版课件作者周朝霞主编第八章节CS战略.ppt
- 企业形象策划实务第2版课件作者周朝霞主编第二章节企业形象的调研.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)