- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 作用域和存储属性 7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化 模块是指为完成特定的任务而建立的相对独立的程序单元。具体地说,是一段连续的,相邻的程序序列。它被边界元素“{ }”限制在一定的范围内,并有一个标识符从整体上代表这些程序语句序列。这个标识符就是此模块的名字,它可以被其它模块中的语句所引用。根据以上概念,可以被叫作模块的有: 模块 模块名 边界元素 函数 函数名 { } 类 类名 { } 一段源程序 源文件名 同一个源文件 7.1 C程序的结构 7.1.1 模块的概念: 图7-1-1显示了一个C语言程序结构,它由多个源程序模块(源文件)组成,一个源程序模块由一个或多个函数模块组成,程序从主函数模块开始执行,主函数模块调用其他函数模块,其他函数模块之间也可以相互调用,所有调用结束以后最终程序的执行流程要返回主函数模块。所以,一个可执行的C程序必须在某个源程序文件中,有且仅有一个主函数 7.1 C程序的结构 7.1.1 模块的概念(续): 图7-1-1 C语言的程序结构 … C程序(工程) 源程序文件1 源程序文件2 源程序文件n 预处理命令 数据声明 函数n 函数1 … 模块化的目的是为了隐藏信息。对一个模块而言,若它能被程序中的其它模块调用,则我们说:对调用它的模块而言,该模块可见。若模块内部的某些信息(函数,变量等)不被隐藏,则这部分就可被其它程序所引用。 7.1 C程序的结构 7.1.2 模块与信息隐藏: 作用域规则,访问控制及连接属性可将一个模块的信息隐藏或开放,从而在C程序的模块之间实现数据共享。 作用域 指的是程序正文中有效的那部分区域。具体而言,是程序正文中对象可以被使用的那部分区域。 7.2 作用域和作用域规则 7.2.1 块作用域和局部变量: 具有块作用域的对象是定义在一对{ }之内的。块作用域的范围从程序中对象定义处到块结束处的“}”止。具有块作用域的变量叫局部变量。 { 17 int k = stuNo[i] - ‘0’; number = 10 * number + k; i++; 20 } 在程序7_1.cpp的第17行我们定义了一个局部变量k,其起作用的范围到程序第20行结束。所以,在第20行以后如果引用变量k,编译系统将会报错。也就是说,变量k仅在while循环内有效,超过这个范围,就不能使用此变量了。 作用域 指的是程序正文中有效的那部分区域。具体而言,是程序正文中对象可以被使用的那部分区域。 7.2 作用域和作用域规则 7.2.2 函数作用域和形参变量: 对象的函数作用域是指对象在定义它的整个函数的范围内都有效。C语言中,函数的形参变量具有函数作用域。 double average(int score[],int n) { // average函数开始 int i = 0; …… } // average函数结束 在程序7_2.cpp中,形参变量score和n的作用域为average函数开始处到average函数结束处。 另外一个具有函数作用域的是goto XXX;语句中的语句标号 XXX。 即:该标号可以出现在一个函数体内的任何一条语句前。 void fun() { goto W1; … if(b0) { W1:…; goto W2; } W2:…; } 作用域 指的是程序正文中有效的那部分区域。具体而言,是程序正文中对象可以被使用的那部分区域。 7.2 作用域和作用域规则 7.2.3 文件作用域和全局变量: 对象的文件作用域 是指从对象的定义处到整个源文件模块结束处。全局变量 是指定义在本源文件中所有函数之前的变量。其作用域从定义位置开始,直到程序结束。 C语言中,具有文件作用域的对象有全局变量和函数名(函数名就代表函数对象) int sum = 0;// 定义全局变量sum存放成绩总和 double average(int score[], int n) { …… } int main() { …… } 在7_3.cpp中定义了全局变量sum,其作用域为整个文件,因此,本文件的所有函数均可使用此变量。 7.2 作用域和作用域规则 int p=1,q=5; float f1(int a) { int b,c; …… } char c1,c2; char
文档评论(0)