- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数、存储类和预处理程序b
概述 C语言说明变量是给出两方面信息: 数据类型和存储类别。数据类型,是变量的操作属性。存储属性反映了变量的如下一些特性: (1)变量的存储器类型 程序中的变量是存储在内存储器中的。实际上,除主存与辅存外,CPU中还有一个小小的临时存储器称为寄存器,用以存储一些反复被加工的数据,寄存器的存取速度比主存快。 C语言允许程序员区分是在主存(主存的数据区分两个部分:静态存储区和动态存储区)中还是在寄存器中开辟变量存储空间。 (2)变量的生命期:变量占据内存的时间期限. 静态变量:静态变量存储空间在程序的整个运行期间是固定的。一个变量被指定为静态,在编译时分配存储空间,程序一开始执行便被建立,直到该程序执行结束都是存在的。 动态变量:动态变量是在程序执行当中被动态建立、动态撤销的,仅存在于函数被调用期间。 (3)变量的作用域:变量出现的有效区域 局部变量:局部范围内有效 全局变量:从定义的位置开始到本文件的结束. 内部变量和外部变量 变量说明的位置不同,其作用域也不同,据此将C语言中的变量分为内部变量和外部变量。 内部变量:在一个函数内部说明的变量是内部变量,它只在该函数范围内有效。也就是说,只有在包含变量说明的函数内部,才能使用被说明的变量,在此函数之外就不能使用这些变量了。所以内部变量也称“局部变量”。 例如: int f1(int a) /*函数f1*/ { int b,c; …… } /*a,b,c作用域:仅限于函数f1()中*/ ? int f2(int x) /*函数f2*/ { int y,z; …… } /*x,y,z作用域:仅限于函数f2()中*/ main() { int m,n; …… } /*m,n作用域:仅限于函数main()中*/ 关于局部变量的作用域还要说明以下几点: 1.主函数main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。同时,主函数中也不能使用其它函数中定义的内部变量。因为主函数也是一个函数,与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。 2.形参变量也是内部变量,属于被调用函数。 3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 4.在复合语句中也可定义变量,其作用域只在复合语句范围内。 如果定义点之前的函数需要引用这些外 部变量时,需要在函数内对被引用的外部变 量进行说明。(不带存储类别的外部变量说 明称为变量的定义性说明,带存储类别的外 部变量说明称为变量的引用性说明) 外部变量引用性说明的一般形式为: extern 数据类型 外部变量[,外部变量2……]; extern int d,e; 注意:外部变量的定义性说明和外部变量的引用性说明是两回事。外部变量的定义性说明必须在所有的函数之外,且只能定义一次。而外部变量的引用性说明,出现在要使用该外部变量的函数内,而且可以出现多次。 一般情况下,变量的值都是存储在内存中的。 为提高执行效率,C语言允许将局部变量的 值存放到寄存器中,这种变量就称为寄存器 变量。 (1)只有局部变量才能定义成寄存器变量,即全局变量不行。 (2)对寄存器变量的实际处理,随系统而异。例如,微机上的MSC和TC将寄存器变 量实际当作自动变量处理。 (3)允许使用的寄存器数目是有限的,不能定义任意多个寄存器变量。 #include stdio.h #define Pi 3.1416 main() {float r; double p,s; scanf(“%f”,r); p=2*Pi*r; s=Pi*r*r; printf(“p=%f\n”,p); printf(“s=%f\n”,s); } 文件包含形式: #include “文件名” 或为:#include 文件名 双引号或尖括号的区别: 用双引号:则系统先在引用被包含文件的C源程序所在的文件目录中寻找,若找不到,再按系统指定的标准方式寻找其它目录; 用尖括号:则仅查找按系统标准方式指定的目录。 宏替换又称宏定义,分为不带参数和带参数两种。 不带参数宏定义的一般形式为: #define 标识符 字符串 宏替换的作用范围是定义它的源文件。 # define Pi 3.1416 #define z x * y * 6.2.1 问题的提出 6.2.2 auto变量 6.2 变量的作用域与生命期 6.2.3 extem变量 6.2.4 static变量 6.2.5
您可能关注的文档
- 关于唐山市古冶2016年区本级预算.doc
- 关于吉林建筑大学政府采购项目征集技术方案及预算计划的.doc
- 关于回旋加速器课的教学设计与反思.doc
- 关于在我大力加强公民意识教育的若干思考6.doc
- 关于场开拓的几点建议.ppt
- 关于城桥镇206年财政决算和2017上半年.doc
- 关于基于有机前驱体的三价铬纳米黑色膜工艺与黑化机制项目的研究.ppt
- 关于实施全面依治区˙共建法治南明行动计划的工作方案.doc
- 关于对2017度拟命名市级安全文化建设.doc
- 关于对《济宁市络商品交易(B2C)合同》和.doc
- 2025中国联合网络通信有限公司固原市分公司招聘(宁夏)笔试备考试题及答案解析.docx
- 2025湖南省密码工程技术研究中心增设岗位招聘计划24人笔试备考试题及答案解析.docx
- 2025年浙江嘉兴市南湖区人民医院公开招聘第一批事业单位工作人员5人笔试备考试题及答案解析.docx
- 2025年中国硬币清分机行业市场调查研究及投资前景展望报告.docx
- 中国飞轮总成市场运行态势及行业发展前景预测报告.docx
- 中国船用潜水排污泵行业发展监测及投资战略规划报告.docx
- 2020-2025年中国邮轮行业深度分析及投资规划研究建议报告.docx
- 2025年中国气缸套行业市场全景评估及发展战略规划报告.docx
- 中国面包车行业市场全景监测及投资战略咨询报告.docx
- 2025年中国电动行李车行业市场发展监测及投资战略咨询报告.docx
文档评论(0)