C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt

C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt

ID:59421708

大小:172.50 KB

页数:59页

时间:2020-09-19

C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt_第1页
C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt_第2页
C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt_第3页
C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt_第4页
C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt_第5页
资源描述:

《C语言的基础知识,基础学习,快速掌握程序结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章程序结构5.1作用域与可见性5.2生存期5.3局部变量和全局变量5.4静态成员5.5友元5.6常类型5.7多文件结构5.8编译预处理5.1作用域与可见性5.1.1作用域作用域是一个标识符在程序正文中有效的区域。C++的作用域有函数原型作用域、块作用域(亦称局部作用域)和文件作用域。1.函数原型作用域函数原型作用域,始于函数原型声明的左括号“(”,结束于右括号“)”。例如,有如下函数声明:doubleArea(doublelength,doublewidth);由于形参length和width只在括号之内有效,在程序的其它地方无

2、法引用这个标识符,如果要引用,必须重新定义。2.块作用域块作用域又称局部作用域。当标识符的声明出现在由一对花括号“{}”所括起来的程序(块)内时,则此块中声明的标识符的作用域从声明处开始,一直到块结束的花括号为止。为了理解块作用域,我们来看一个例子:#includevoidmain(){intn;for(inti=0;i<5;i++){intm;if(i%2)//m作用域i作用域n作用域n++;}m=n/2;//错误,m未定义n=i;}3.文件作用域具有文件作用域的标识符是在所有函数定义之外声明的,其作用域从

3、声明点开始,一直延伸至文件尾。一般情况下,程序中所声明的全局变量都具有文件作用域,它们在整个文件中都有效。【例5-1】文件作用域例题。#includeintk;voidmain(){k=5;{k++;}cout<<"k="<

4、可见性。可见性遵循的一般规则如下:①标识符在引用前必须先声明。②在互相没有包含关系的不同作用域中声明同名的标识符时,两标识符互不影响。③如果在两个或多个具有包含关系的作用域中声明了同名标识符,则外层标识符在内层不可见。【例5-2】具有包含关系的作用域中可见性例题。#includeintk;voidmain(){k=10;{intk=5;cout<<"k="<

5、范围是整个源代码文件;主函数内声明的变量k具有块作用域,它的作用范围在内层的花括号内,k的块作用域被完全包含在k的文件作用域中。5.2生存期5.2.1静态生存期静态生存期的变量只要程序一开始运行,它就存在,直到程序运行结束,此变量的生存期也就结束了。具有文件作用域的变量具有静态生存期。如果要在函数内部的块作用域中声明具有静态生存期的变量,则要使用关键字static。具有静态生存期的变量在固定的数据区域内分配空间。如果具有静态生存期的变量未初始化,则自动初始化为0。全局变量、静态全局变量和静态局部变量都具有静态生存期。5.2.2局部生

6、存期在块作用域中声明的变量具有局部生存期。此生存期诞生于声明点,而终止于其作用域的结束处。因此,具有局部生存期的变量都具有块作用域。但反之则不然,一般具有块作用域的变量都具有局部生存期,但当在块作用域内将变量说明为静态变量时,该变量则具有静态生存期。例如:voidmain(){staticintk;//...}5.2.3动态生存期动态生存期由程序中特定的函数(malloc()和free())调用或由操作符(new和delete)创建和释放,这部分内容将在第6章中介绍。具有动态生存期的变量在内存的堆区分配空间。5.3局部变量和全局变量

7、5.3.1局部变量局部变量具有局部作用域。因此,在不同函数体内的局部变量是互相不可见的。局部变量包括自动(auto)变量、内部静态(static)变量和函数参数。自动变量是在函数体或分程序内声明的变量,具有块作用域。声明时,变量前可以加auto,也可以不加,程序中没有特别说明的变量都是自动变量。函数参数实质上就是自动变量。局部变量能够在调用和被调用函数之间通过参数进行数据传递。5.3.2全局变量全局变量具有文件作用域。在整个程序中,除了在定义有同名局部变量的块中之外,其它地方都可以直接访问全局变量。将数据存放在全局变量中,不同的函数

8、在不同的地方对同一个全局变量进行访问,实现了这些函数之间的数据共享。请看下面的程序:#includeintn;voidf(){n=5;}voidg(){cout<<"n="<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。