第2章VC程序设计基础变量与函数课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章VC程序设计基础变量与函数课件.ppt》由会员分享,可在线阅读,更多相关《第2章VC程序设计基础变量与函数课件.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 VC程序基础程序基础变量与函数变量与函数 2.1 2.1 变量的生存期与作用域变量的生存期与作用域 2.2 2.2 指针与引用指针与引用 2.3 2.3 函数的声明与调用函数的声明与调用 2.4 2.4 函数参数的传递函数参数的传递 本章从变量的本章从变量的五个要素五个要素着手,围绕它讲了变量的各种着手,围绕它讲了变量的各种生存期生存期和和作用域作用域。另外还对一种特殊的变量。另外还对一种特殊的变量地址变量地址变量进行了讲解。进行了讲解。本章主要讲了与函数有关的本章主要讲了与函数有关的定义定义、实现实现以及以及调用调用的三种方式。掌的三种方式。掌握了变量与函数,就把程序设计的基本把
2、握住了,因此本章属于握了变量与函数,就把程序设计的基本把握住了,因此本章属于VCVC程序设计的程序设计的基础知识基础知识。2023/1/1212.1 变量的生存期与作用域变量的生存期与作用域2.1.1 2.1.1 变量的五要素变量的五要素2.1.2 2.1.2 VCVC程序的存储组织程序的存储组织 2.1.3 2.1.3 变量作用域及其分类变量作用域及其分类 2.1.4 2.1.4 一个一个VCVC多文件应用程序的实现多文件应用程序的实现2.1.5 2.1.5 变量生存期及其分类变量生存期及其分类 2.1.6 2.1.6 VCVC中的数据类型中的数据类型 2023/1/1222.1.1变量的五
3、要素1 1变量的名称变量的名称2 2变量的数据类型变量的数据类型3 3变量的值变量的值4 4变量的地址变量的地址5 5变量的存储类型变量的存储类型2023/1/1232.1.2 VC程序的存储组织 一个一个VCVC程序编译运行后,将其对应的目标代码调程序编译运行后,将其对应的目标代码调到内存中。到内存中。目标代码主要包含目标代码主要包含操作符操作符和和操作数操作数,其中操作符存放在代码区,程序中处理的数据(操作数)其中操作符存放在代码区,程序中处理的数据(操作数)分别存放在分别存放在静态存储区静态存储区和和动态存储区动态存储区。一个一个VCVC程序可以使用的存储空间分为如下三个部程序可以使用的
4、存储空间分为如下三个部分分:代码区代码区 静态存储区静态存储区 动态存储区动态存储区 2023/1/124 变变量量的的作作用用域域是是指指在在程程序序中中变变量量的的有有效效区区域域,它它是是变变量量的的活活动动空空间间。“铁铁路路警警察察各各管管一一段段”,描描述述的的就就是是铁铁路路警警察察这这些些变变量量的的作作用用域域为为各各自自的的一一段段。在在VCVC中中,变变量量的的作作用用域域有有六六种种,从从其其作作用用范范围围的的大大小小由由小小到到大大依依次次为为:块块作作用用域域、函函数数作作用用域域、类类作作用用域域、命命名名空空间间作作用用域域、文文件件作作用用域域、程程序序作作
5、用用域域。变变量量的的作作用用域域取取决于变量的位置与声明的方式。决于变量的位置与声明的方式。2.1.3 变量作用域及其分 2023/1/1251块作用域 块块指指的的是是由由一一对对“”“”、“”“”括括起起来来的的程程序序段段。在在块块中中声声明明的的变变量量具具有有块块作作用用域域,其其作作用用域域从从声声明明处处开开始始,一一直直到到块块结结束束的的花花括括号号为为止止。复复合合语语句句也也是是一一个个块块,例例如如ifif语语句句中中定定义义的的变变量量只只能能在在ifif语语句句中中使使用用,forfor语语句句中中定定义义的的变变量量,包包括括括括号号表表达达式式中中定定义义的的
6、变变量,只能在量,只能在forfor语句中使用。语句中使用。下面演示块作用域的实例:下面演示块作用域的实例:2023/1/126【例例2-12-1】演示块作用域的实例:输入两个数将】演示块作用域的实例:输入两个数将由大到小的顺序保存,并输出结果由大到小的顺序保存,并输出结果#include iostream.hinclude iostream.h#include#include void main()void main()int x,y;int x,y;coutcout请输入两个整数:请输入两个整数:xy;cinxy;if(x=y)/xif(x=y)/x中保存较大的数,中保存较大的数,y y中
7、保存较小的数中保存较小的数 int t;/tint t;/t为临时变量,其作用域为块作用域为临时变量,其作用域为块作用域t=x;/t=x;/交换交换x x与与y y的值的值x=y;x=y;y=t;y=t;coutx=setw(6)xy=setw(6)yendl;coutx=setw(6)xy=setw(6)yendl;/setw(6)/setw(6)设置显示的宽度为设置显示的宽度为6 6个字符个字符 2023/1/1272函数作用域函函数数作作用用域域是是在在某某个个函函数数内内起起作作用用,例例如如函函数数的的形形式式参参数数具具有有函函数数作作用用域域,它它们们起起始始于于函函数数体体开开
8、始始的的第第一一个个左左花花括括号号“”“”,结结束束于于标标志志函函数数体结束的最后一个右花括号体结束的最后一个右花括号“”“”。可可以以说说函函数数作作用用域域是是一一种种特特殊殊的的块块作作用用域域。一一个个函函数数内内可可以以有有多多个个块块,因因此此函函数数作作用用域域大大于于块块作用域作用域。2023/1/128【例例2-22-2】演示函数作用域的实例:将一个整数的】演示函数作用域的实例:将一个整数的各个位上的数字加起来(用函数完成),并输出各个位上的数字加起来(用函数完成),并输出结果。结果。#include iostream.h#include iostream.h#inclu
9、de#include int SumDigits(int x)/xint SumDigits(int x)/x为形式参数,其作用域为该函数,在该函数外不可访问为形式参数,其作用域为该函数,在该函数外不可访问 int sum=0;/xint sum=0;/x为函数内定义的变量,其作用域为该函数为函数内定义的变量,其作用域为该函数while(x)while(x)sum+=x%10;/sum+=x%10;/求个位数字求个位数字x/=10;/x/=10;/原数字缩小原数字缩小1010倍倍 return sum;/sumreturn sum;/sum保存各位数字之和保存各位数字之和 void main(
10、)void main()int a;int a;coutcout请输入一个整数:请输入一个整数:a;cina;coutSumDigits(a)n;/coutSumDigits(a)n;/输出各位数字之和输出各位数字之和 2023/1/1293类作用域 下下一一章章要要讲讲类类与与对对象象,在在类类中中包包含含成成员员变变量量与与成成员员函函数数。一一个个类类中中的的成成员员变变量量在在该该类类的的任任何何成成员员函函数数中中都都可可以以访访问问,因因此此类类的的作作用用域域是是整整个个类类的的定定义空间。义空间。4命名空间域 一一个个工工程程中中的的多多个个文文件件中中有有可可能能存存在在相相
11、同同的的变变量量,为为了了区区别别这这些些变变量量,可可以以将将在在不不同同文文件件中中的的相相同同变变量量防防到到放放到到两两个个不不同同命命名名空空间间中中,通通过过命命名名空空间间来来确确定定变变量量作作用用范范围围的的作作用用区区域域叫叫命命名名空空间间作作用用域域。该小节牵涉的东西请查阅相关资料。该小节牵涉的东西请查阅相关资料。2023/1/12105文件作用域在在函函数数(以以及及下下一一章章要要讲讲的的类类)以以外外声声明明的的、并并且且用用“static”修修饰饰的的变变量量,具具有有文文件件作作用用域域。其其作作用用域域起起始始于于变变量量的的声声明明处处,终终止止于于文文件
12、件的的结结束束处处,具具有有该该作作用用域域的的变变量量又又称称全全局局变变量量。该该种种类类型型的的变变量量仅仅仅仅在在该该文文件件中中是是全全局局的的,别的文件不能使用。别的文件不能使用。文件作用域又叫单文件作用域。文件作用域又叫单文件作用域。下面是文件作用域的实例下面是文件作用域的实例 2023/1/1211【例2-3】文件作用域的实例。本程序定义了一个全局变量x,其作用域为整个文件。#include iostream.hinclude iostream.h#include#include static int x=6903410;static int x=6903410;void vo
13、id Swap(int Swap(int x,int x,int y)y)/利利用用加法完成两个数的交换加法完成两个数的交换 x=x+y;x=x+y;/此此处处的的x x与与y y为为函函数数作作用域用域y=x-y;y=x-y;x=x-y;x=x-y;coutSwap()coutSwap()函函 数数 中中 的的 x x为为xendl;xendl;:x+;:x+;/文文件件作作用用域域的的变变量量x x加加1 1 coutcout调调用用SwapSwap后后文文件件作作用用域域的的的的x x为为:xendl;xendl;void main()void main()int x;int x;cou
14、tcout请请 输输 入入 一一 个个 整整 数数:x;cinx;+x;/main+x;/main函数中的函数中的x x加加1 1coutmain()coutmain()函函 数数 中中 的的 x x值值 为为xendl;xendl;coutcout文文 件件 作作 用用 域域 的的 的的 x x为为:xendl;xendl;Swap(x,10);Swap(x,10);2023/1/12126程序作用域 如如果果一一个个变变量量的的存存储储类类别别为为外外部部(extern)类类型型,则则称称该该变变量量为为外外部部变变量量。外外部部变变量量带带有有赋赋值值的的声声明明称称为为定定义义性性说说
15、明明,外外部部变变量量不不带带有有赋赋值值的的声声明明称为称为引用性说明引用性说明。extern char choice=y;/extern char choice=y;/定义性声明定义性声明extern float money;/extern float money;/引用性声明引用性声明定定义义性性声声明明指指示示编编译译器器程程序序为为该该外外部部变变量量分分配配内内存存,而而引引用用性性声声明明仅仅告告诉诉编编译译程程序序该该名名字字的的变变量量在程序的其它地方已经有了定义性声明在程序的其它地方已经有了定义性声明。外外部部变变量量是是全全局局变变量量、动动态态生生存存期期变变量量,所所
16、以以其其作用域大、寿命长。作用域大、寿命长。2023/1/12132.1.4 一个一个VC多文件应用多文件应用程序的实现程序的实现 在在大大型型复复杂杂的的应应用用程程序序中中,一一个个任任务务常常常常划划分分成成多多个个模模块块,每每个个模模块块是是由由不不同同的的人人员员编编写写,当当然然不不同同的的人人编编制制的的代代码码应应放放在在不不同同的的文文件件中中,最最后后要要把把这这些些文文件件统统一一起起来来,放放到到一一个个工工程程中中。此此时时,在在自自己己的的文文件件中中如如何何访访问问别别的的文文件件中中的的变变量量或或函函数数,又又如如何何控控制制别别人人编编的的文文件件不不能能
17、使使用用自自己己的的变变量呢?量呢?这就牵涉到如何使用这就牵涉到如何使用程序作用域程序作用域的变量。的变量。2023/1/1214【例例2-42-4】建立一个包含多个文件的程序。该工程】建立一个包含多个文件的程序。该工程的名字为的名字为ProgScopeProgScope 1建立一个空的控制台工程建立一个空的控制台工程()单单击击VCVC集集成成开开发发环环境境菜菜单单File|NewFile|New,选选择择ProjectsProjects选选项项。该该选选项项下下列列出出了了VCVC可可以以开开发发的的1717种种应应用用程程序序的的类类型型。我我们们选选择择基基于于字字符符界界面面的的“
18、Win32 Consloe ApplicationsWin32 Consloe Applications”控制台应用程序类型。如图控制台应用程序类型。如图2.12.1所示。所示。()在在“Project Project Name”Name”编编辑辑框框内内填填写写工工程程的的名名字字“ProgScope”ProgScope”,并并在在“Location”Location”编编辑辑框框内内填填写写工工程程所所在在的的目目录录。我我们们选选择择的的是是“E:VCPP”E:VCPP”。这这样样,当当最最后后生生成成一一个个应应用用程程序序时时,就就在在E:VCPPE:VCPP的的目目录录在在生生成成
19、一一个个新新目目录录ProgScope ProgScope,在在“E:VCPP E:VCPP ProgScope ProgScope”目目录录下下,存放的是与该工程有关的一系列文件。存放的是与该工程有关的一系列文件。()单单击击按按钮钮“Ok”,Ok”,进进入入到到图图2.22.2所所示示的的界界面面中中。该该界界面面让让用用户户选选择择Win32 Win32 控控制制台台应应用用程程序序的的类类型型。我我们们选选择择第第一一种种“A A empty empty projectproject”。单击单击“Finish”Finish”按钮,进入到图按钮,进入到图2.32.3所示的界面。所示的界面
20、。()图图2.32.3是是对对生生成成工工程程总总的的信信息息描描述述,没没多多大大意意义义。单单击击“OK”OK”按按钮钮生成生成ProgScopeProgScope应用程序框架。应用程序框架。2023/1/1215【例【例2-42-4】建立一个包含多个文件的程序。该】建立一个包含多个文件的程序。该工程工程的名字为的名字为ProgScope图图2.1 2.1 选择应用程序类型对话框选择应用程序类型对话框 2023/1/1216【例【例2-42-4】建立一个包含多个文件的程序。该】建立一个包含多个文件的程序。该工程工程的名字为的名字为ProgScope图图2.2 2.2 选择控制台工程类型图选
21、择控制台工程类型图2.3 2.3 生成的控制台工程信息生成的控制台工程信息 2023/1/1217【例【例2-42-4】建立一个包含多个文件的程序。】建立一个包含多个文件的程序。该该工程的名字为工程的名字为ProgScope2在工程中增加在工程中增加C+源文件源文件(1)(1)单单击击File|NewFile|New,选选择择FilesFiles选选项项卡卡,该该选选项项下下列列出出了了VCVC可可以以使使用用的的文文件件类类型型。我我们们选选中中C+C+Source Source FileFile列列表表项项,并并在在右右边边的的FileFile编编辑辑框框中中输输入入新新建建单单文文件件C
22、+C+文文件件名名称称File1File1。同同时时选选中中“Add Add toProject:”toProject:”复复选选框框。如如图图2.42.4所所示示。最最后后按按OKOK按按钮钮,返返回回到到Microsoft Microsoft Visuall Visuall C+C+的主窗口,在其中输入如下的程序源代码:的主窗口,在其中输入如下的程序源代码:#include iostream.hextern int File2_x;/引用性声明引用性声明,表示要使用别的文件中的表示要使用别的文件中的File2_x变量变量 void main()coutFile2.cpp中的变量中的变量Fi
23、le2_x=File2_xendl;2023/1/1218【例【例2-42-4】建立一个包含多个文件的程序。该】建立一个包含多个文件的程序。该工程工程的名字为的名字为ProgScope(2)用用同同样样的的方方法法在在工工程程ProgScope中中添添加加另另一一个个源源文文件件File2.cpp,该文该文 件中的代码为:件中的代码为:extern intextern int File2_x=222;File2_x=222;/定定义义性性声声明明变变量量File2_xFile2_x,它它是是一一个个程程序序作作用用域域的的变变量量,别别的的文文件件可可以访问它,前面的以访问它,前面的exter
24、nextern可省略可省略 图图2.4 2.4 在工程中增加源文件在工程中增加源文件File1.cpp File1.cpp 2023/1/1219【例【例2-42-4】建立一个包含多个文件的程序。该】建立一个包含多个文件的程序。该工程的工程的名字为名字为ProgScope 3运行该工程运行该工程 按按“Ctrl+F5”,VC编编译译器器编编译译、链链接接并并运运行行该程序,程序的运行结果为:该程序,程序的运行结果为:File2.cpp中的变量中的变量File2_x=222 自自己己尝尝试试把把File2.cpp中中的的语语句句“extern int File2_x=222;”前前的的exter
25、n改改为为static,看看程程序序还还能不能运行,并分析原因。能不能运行,并分析原因。2023/1/12202.1.5 变量生存期及其分类变量生存期及其分类 变量的生存期变量的生存期指程序运行过程中变量占用内存或寄存器的时间指程序运行过程中变量占用内存或寄存器的时间它由声明变量时选择的它由声明变量时选择的存储类型存储类型来决定的。来决定的。任任何何一一个个类类型型的的变变量量都都有有自自己己的的生生存存期期,在在生生存存期内,变量将保持它的值不变,直到它被更新止。期内,变量将保持它的值不变,直到它被更新止。变量生存期的分类变量生存期的分类静态生存期静态生存期动态生存期动态生存期2023/1/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 程序设计 基础 变量 函数 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内