- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 VC程序基础——变量与函数 本章从变量的五个要素着手,围绕它讲了变量的各种生存期和作用域。另外还对一种特殊的变量——地址变量进行了讲解。本章主要讲了与函数有关的定义、实现以及调用的三种方式。掌握了变量与函数,就把程序设计的基本把握住了,因此本章属于VC程序设计的基础知识。 2.1 变量的生存期与作用域 2.1.1 变量的五要素 1.变量的名称 2.变量的数据类型 3.变量的值 4.变量的地址 5.变量的存储类型 2.1.2 VC程序的存储组织 一个VC程序编译运行后,将其对应的目标代码调到内存中。 目标代码主要包含操作符和操作数, 其中操作符存放在代码区,程序中处理的数据(操作数)分别存放在静态存储区和动态存储区。 一个VC程序可以使用的存储空间分为如下三个部分: 代码区 静态存储区 动态存储区 2.1.3 变量作用域及其分 变量的作用域是指在程序中变量的有效区域,它是变量的活动空间。“铁路警察各管一段”,描述的就是铁路警察这些变量的作用域为各自的一段。在VC中,变量的作用域有六种,从其作用范围的大小由小到大依次为:块作用域、函数作用域、类作用域、命名空间作用域、文件作用域、程序作用域。变量的作用域取决于变量的位置与声明的方式。 1.块作用域 块指的是由一对“{”、“}”括起来的程序段。在块中声明的变量具有块作用域,其作用域从声明处开始,一直到块结束的花括号为止。复合语句也是一个块,例如if语句中定义的变量只能在if语句中使用,for语句中定义的变量,包括括号表达式中定义的变量,只能在for语句中使用。 下面演示块作用域的实例: 【例2-1】演示块作用域的实例:输入两个数将由大到小的顺序保存,并输出结果 #include iostream.h #include iomanip.h void main() { int x,y; cout请输入两个整数:endl; cinxy; if(x=y) //x中保存较大的数,y中保存较小的数 { int t; //t为临时变量,其作用域为块作用域 t=x; //交换x与y的值 x=y; y=t; } coutx=setw(6)xy=setw(6)yendl; //setw(6)设置显示的宽度为6个字符 } 2.函数作用域 函数作用域是在某个函数内起作用,例如函数的形式参数具有函数作用域,它们起始于函数体开始的第一个左花括号“{”,结束于标志函数体结束的最后一个右花括号“}”。 可以说函数作用域是一种特殊的块作用域。一个函数内可以有多个块,因此函数作用域大于块作用域。 【例2-2】演示函数作用域的实例:将一个整数的各个位上的数字加起来(用函数完成),并输出结果。 #include iostream.h #include iomanip.h int SumDigits(int x) //x为形式参数,其作用域为该函数,在该函数外不可访问 { int sum=0; //x为函数内定义的变量,其作用域为该函数 while(x) { sum+=x%10; //求个位数字 x/=10; //原数字缩小10倍 } return sum; //sum保存各位数字之和 } void main() { int a; cout请输入一个整数:endl; cina; coutSumDigits(a)\n; //输出各位数字之和 } 3.类作用域 下一章要讲类与对象,在类中包含成员变量与成员函数。一个类中的成员变量在该类的任何成员函数中都可以访问,因此类的作用域是整个类的定义空间。 5.文件作用域 在函数(以及下一章要讲的类)以外声明的、并且用“static”修饰的变量,具有文件作用域。其作用域起始于变量的声明处,终止于文件的结束处,具有该作用域的变量又称全局变量。该种类型的变量仅仅在该文件中是全局的,别的文件不能使用。 文件作用域又叫单文件作用域。 下面是文件作用域的实例 【例2-3】文件作用域的实例。本程序定义了一个全局变量x,其作用域为整个文件。 #include iostream.h #include iomanip.h static int x=6903410; void Swap(int x,int y) //利用加法完成两个数的交换 { x=x+y; //此处的x与y为函数作用域 y=x-y; x=x-y; coutSwap()函数中的x为xendl; ::x++; //文件作用域的变量x加1 } cout调用Swap后文件作用域的的x为::xendl; } 6.程序作用域 如果一个变量
您可能关注的文档
最近下载
- 初中数学小课题研究的方案.doc VIP
- 韶山年产200吨超细铜粉、200吨电子级银粉建设项目环评报告书.doc
- 特发性低促性腺激素性性腺功能减退症IHH临床、分子机制及诊断治疗.ppt
- 2023 CSCO结直肠癌指南更新(全文).pdf
- 河北汉润化工科技有限公司年产500吨2,3,4三氯苯甲酰胺项目.doc
- 食品生产经营企业落实食品安全主体责任监督管理规定解读与培训.pptx
- 庙山模板、木方等采购 投标方案(技术标 ).doc VIP
- 文书工作与档案管理教学课件作者第三版赵映诚12第十二章专门档案的管理与利用(3333KB).ppt
- 文书工作与档案管理教学课件作者第三版赵映诚9第九章档案的整理与保管(3002KB).ppt
- 望远镜初始结构参数计算.ppt
文档评论(0)