- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 函数(续) 主要内容 4.1 函数定义和调用 4.2 参数传递方式 4.3 变量的作用域和存储属性 4.4 函数的嵌套调用和递归调用 4.5 函数设计示例 4.3 变量的作用域和变量的属性 4.3.1 作用域 变量的作用域——更准确的说——标识符的作用域 将变量名、函数名、类型名、常量名等统称为量 对变量、函数等标识符的定义和声明统称为说明 使用变量(函数)的名和值统称为“使用”或“起作用” 使用变量时,都必须考虑它的“作用范围”,超出它的范围,便是“未定义标识符”(undeclared identifier ),编译时报错 变量的作用域依赖于对它的说明出现在程序中的位置 不同的变量,其作用域可能不同 局部量和全局量 局部量:在函数(主函数和子函数)内部定义的量(包括形参) 全局量:在函数外面定义的量,包括常量名、宏名、变量名、函数名、类型名等 函数名本身属于全局量 作用域的大体规定: 1)局部量的作用域: 从第一次遇到对它的说明起,到它所在最小程序单位的最后一个“}”为止 作用域仅限于函数内部,函数外部不能使用 char f1( int n,char c) { int x; …… } int f2( int a, int b) { int *p; ………… {int i; …… } …… } void main( ) {char c,d; int p,k; ……… }? 关于局部量的定义和作用域的说明 1)同一作用域内的标识符不能重名,不同作用域中的标识符可以重名 2)TC2.0等低版本中,变量只能在分程序的前部定义,作用域仅限于分程序内部 分程序是用“{ }”括起来的含说明的语句序列 VC等高版本中,可以在程序任何地方定义变量,即可以将语句和说明混杂在一起,甚至可以在for循环语句中定义,它的作用域从定义起,到它所在的函数结束处止 3)不同函数中定义的局部量可以重名 便于多人合作,编写大型程序 4)局部变量作用域的解释: 定义时,分配存储单元 作用域结束处收回存储单元 在作用域之外,“找不到”这个变量 自然也就不能再使用它了 void test( ) { int x,y,n; scanf(%d%d%d,x,y,n); for(int i=0;in;i++) { int j; ………… }; ? for( i=0;in;i++) { ……………… }; } 关于全局量的定义和作用域的说明: 函数中使用全局量的好处与缺点 增加主调函数与被调函数之间联系渠道 易产生副作用 函数体对全局量的修改非常隐蔽,外界无法预测 函数缺乏通用性(只能使用同一个“参数”) 关于全局量的定义和作用域的说明: 例4-20 变量声明示例(示意性程序) #define N 100 typedef struct { char name[20], updown; long number; int chinese, math , eng ; } student ; student a[N]; int f1(int b) { int x; ………… } char c,d; float f2(float a, float b) {int i; float w; ………… } void main ( ) { int b[N], i,j; ………… } 4.3.2 存储属性 定义变量和函数时,为其指定存储属性(存储类别) 变量定义的一般格式应为: 存储属性 类型说明 变量名 若不指定存储属性,则采用默认属性 4.3.2 存储属性 为局部变量指定存储属性的作用: 确定存储区、影响生存期和存取速度 生存期:从分配单元到收回存储单元的时间段 1.局部量的存储属性 自动变量、局部静态变量、寄存器变量 (1)自动变量 一般定义格式: auto 类型名 变量名 例: int f1( int x) { auto int y=2,s; //y和s是自动变量(auto可以不写) //可以赋初值,或不赋初值 1.局部量的存储属性 (1)自动变量 分配在动态区,生存期不超过函数的(本次)执行期 调用函数时分配存储单元,调用结束时释放存储单元 同一函数两次调用,所占存储单元的位置可能不同 不指定初值,其初值不确定 指定的初值称调用初值(
您可能关注的文档
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第2章 设置图层、线型、线宽及颜色.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第3章 基本绘图与编辑(一).ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第4章 基本绘图与编辑(二).ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第5章 高级绘图与编辑.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第6章 复杂图形绘制实例.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第7章 查询图形信息.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第8章 在图形中添加文字.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第9章 标注尺寸.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第10章 参数化绘图.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第11章 图块及外部引用.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 电子教案 C第4章 3.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 电子教案 C第5章 1.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 电子教案 C第5章 2.ppt
- AutoCAD2010中文版范例教程 教学课件 作者 王重阳 autocad2010中文版范例教程 第4章.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 电子教案 C第6章 1.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 电子教案 C第6章 2.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 习题解答 第1章,仅答案.doc
- AutoCAD2010中文版范例教程 教学课件 作者 王重阳 autocad2010中文版范例教程 第5章.ppt
- C C++程序设计 第2版 教学课件 作者 陈卫卫 习题解答 第2章,仅答案.doc
- C C++程序设计 第2版 教学课件 作者 陈卫卫 习题解答 第3章,仅答案.doc
最近下载
- 餐饮连锁新店选址评估表.xlsx VIP
- 第节特种陶瓷粉体制备方法特种陶瓷粉体制备方法.PDF VIP
- 幼儿园大班数学《10以内的加减法》PPT课件.pptx VIP
- 【课件】免疫与免疫规划+第二课时+免疫的功能与免疫规划课件人教版生物八年级上册.pptx VIP
- GBT50417-2017 煤矿井下供配电设计规范.docx VIP
- 2024-2025学年酒泉市金塔县重点中学小升初数学入学考试卷含解析.doc VIP
- 飞机维护模拟训练系统.doc VIP
- DBJ51/168-2021四川省住宅设计标准.docx VIP
- [泰州]江苏泰州泰兴现代农业产业园区招聘员额制工作人员10人笔试历年典型考点(频考版试卷)附带答案详.docx VIP
- DB61_T 5079-2023 城市轨道交通工程沿线土遗址振动控制与监测标准.docx
文档评论(0)