- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
局部变量和全局变量 全局变量 在函数外定义的变量叫全局变量; 全局变量的作用域为定义位置 至源文件结束; 全局变量可以和局部变量重名; 全局变量和重名的局部变量如果 有作用域上的重叠,以局部变量 优先。 PS:一般建议全局变量采用大写字母,以便识别 int X; void f(int a, int b) { int t; t=a; a=b; b=t; printf(“%d,%d”, a,b); } int Y; main() { int a=10, b=20; f(b,a); } int Z; 全局变量---外部变量 定义:在函数外定义,可为本文件所有函数共用 有效范围:从定义变量的位置开始到本源文件结束,及有extern说明的其它源文件 定义 说明 次数: 只能1次 可说明多次 位置: 所有函数之外 函数内或函数外 分配内存: 分配内存,可初始化 不分配内存,不可初始化 外部变量说明: extern 数据类型 变量表; 外部变量定义与外部变量说明不同 局部变量和全局变量 应尽量少使用全局变量,因为: 全局变量在程序全部执行过程中占用存储单元 降低了函数的通用性、可靠性,可移植性 降低程序清晰性,容易出错 若外部变量与局部变量同名,则外部变量被屏蔽 外部变量可用存储类型:缺省 或 static 局部变量和全局变量 全局变量---外部变量 定义:在函数外定义,可为本文件所有函数共用 有效范围:从定义变量的位置开始到本源文件结束,及有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; ……. } c1,c2的作用范围 p,q的作用范围 extern char c1,c2; extern char c1,c2; c1,c2 的作用范围 扩展后 c1,c2 的作用范围 扩展后 函数之间的数据传递方式 形参与实参 返回值 全局变量 变量的属性 数据类型:变量所持有的数据的性质(操作属性) 存储属性 存储器类型:寄存器、静态存储区、动态存储区 生存期:变量在某一时刻存在-------静态变量与动态变量 作用域:变量在某区域内有效-------局部变量与全局变量 变量的存储类型 auto -----自动型 register-----寄存器型 static ------静态型 extern -----外部型 变量定义格式: [存储类型] 数据类型 变量表; 如: int sum; auto int a,b,c; register int i; static float x,y; 变量的存储类别 从变量的生存期来分,可以把变量分为静态存储方式和动态存储方式。 静态存储方式:程序运行期间分配固定的存储空间,分配空间在静态存储去,生存期由程序开始至结束。 动态存储方式:根据需要分配空间和释放空间,每次分配的空间不固定,分配空间在动态存储区。 存储类别 数据类型 变量名; auto static register extern 局部变量的三种存储类别 变量的定义格式: 存储类别 变量类型 变量名1,……; 存储类别 auto: 缺省的存储类别是auto,形参也是auto型的, 其生存期为函数调用开始至函数调用结束。 static: 生存期为程序开始至程序结束 所谓变量赋初值,仅仅指在为变量分配内存空间时给它一个值,和一般口语化的“赋初值”意思不同。 register: 类似auto,但存储空间在寄存器中 int f(int i) { int c=0; //static int c=0; c+=i; return c; } main() { int i, sum; for(i=0;i10;i++) sum=f(i); printf(“%d”,sum); } 输出结果?如函数f 中变量c定义为静态型(static)? 9 45
您可能关注的文档
- 5第五讲单位犯罪疑难问题及司法认定教程.ppt
- 5第五章钢筋混凝土受弯构件斜截面承载力计算()教程.doc
- 5第五章林业生态工程规划教程.ppt
- 5第五章民事法律行为和代理1教程.ppt
- 5电路故障专题教程.ppt
- 5电气自动化专业电路教程.ppt
- 5电梯工程监理实施细则(范本)教程.doc
- 5多糖分离纯化及含量测定1教程.ppt
- 5樊城区中考适应性考试化学生物试题MicrosoftOfficePowerPoint演示文稿教程.ppt
- 5防治导则教程.doc
- 注册验船师高频真题题库2025.docx
- 注册验船师高频题库带解析2025.docx
- 注册验船师考试必备资料2025.docx
- 注册验船师精选题库带分析2025.docx
- 注册验船师考前冲刺必刷题附答案2025.docx
- 新高考生物二轮复习讲练测第10讲 人体的稳态与免疫调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第7讲 遗传的基本规律与伴性遗传(检测)(原卷版) .docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(检测)(原卷版).docx
文档评论(0)