欢迎来到天天文库
浏览记录
ID:59422312
大小:413.00 KB
页数:99页
时间:2020-09-19
《C程序设计基础 第1章 C语言概述ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
程序设计基础-面向对象及C++实现北华航天工业学院1 第一章C++语言概述2 目标理解程序设计的概念掌握C++程序的开发过程掌握C++的运算符和表达式掌握C++的数据类型,包括基本数据类型和构造数据类型熟练掌握基本控制语句的使用:if、switch、while、do~while、for掌握转向语句:break、contiune语句的使用熟练掌握函数的使用3 1.1面向对象程序设计入门1.1.1程序设计与程序设计语言1.1.2简单的C++程序1.1.3创建和运行C++程序1.1.4VC++集成开发环境4 1.1.1程序设计与程序设计语言程序设计也是一门工程设计,它是根据要解决的问题,使用某种程序设计语言,设计出能够完成这一任务的计算机指令序列。程序设计语言是人与计算机进行交流的一种形式语言,是人利用计算机分析文问题、解决问题的一个基本工具。5 1.1.2简单的C++程序/*源文件名:Ch1_01.cpp功能:给出矩形的宽和高,计算矩形的周长和面积,使用结构化方法实现*/#includevoidmain(){intwidth,height,girth,area;cout<<"请输入矩形的宽和高:";//提示输入信息cin>>width>>height;//输入两个数据girth=(width+height)*2;//计算矩形周长area=width*height;//计算矩形面积cout<<"矩形:宽="<是一条编译预处理命令,声明该程序要使用iostream.h文件中的内容,iostream.h文件中包含了输入cin和输出cout的定义。编译时系统将头文件iostream.h中的内容嵌入到程序中该命令位置。9 1.1.2简单的C++程序(3)程序中定义了一个主函数main(),其中main是函数名,void表示该函数返回值类型。程序执行从主函数开始。(4)函数体中声明变量的语句是:“intwidth,height,girth,area;”,通知系统为变量分配存储空间。(5)函数体中的其他语句用于完成相应功能,是函数体的重要组成部分。10 1.1.2简单的C++程序书写格式,尽量遵循以下基本原则:(1)一般情况下一行只写一条语句。短语句可以一行写多条,长语句可以分成多行来写。分行原则是不能将一个单词分开,用双引号括起来的字符串最好也不要分开。(2)C++程序书写时要尽量提高可读性。为此,采用适当地缩进格式书写程序是非常必要的,表示同一类内容或同一层次的语句要对齐。(3)C++程序中大括号{}使用较多,其书写方法也较多,建议用户要养成使用大括号{}的固定风格。11 1.1.3创建和运行C++程序C++源程序要经过编辑、编译、连接、运行4个环节,才能产生输出结果。12 1.1.3创建和运行C++程序1.编辑编辑是在一定的环境下进行程序的输入和修改过程。2.编译编辑好的源程序不能被计算机理解,源程序必须经过编译,生成计算机能够识别的机器代码。编译阶段要进行词法分析和语法分析,又称源程序分析。13 1.1.3创建和运行C++程序3.连接编译后生成的目标代码还不能直接在计算机上运行,其主要原因是编译器对每个源程序文件分别进行编译,如果一个程序有多个源程序文件,编译后这些源程序文件还分布在不同的地方。4.运行一个C++源程序经过编译和连接后生成了可执行文件后,就可以在Windows环境下直接双击该文件运行该程序,也可以在VisualC++6.0的集成开发环境下运行。14 1.1.3创建和运行C++程序C++程序的上机实现过程:(1)启动VisualC++6.0用户可以单击“开始”菜单,在“程序”选项中选择“MicrosoftVisualStudio6.0”级联菜单下的“MicrosoftVisualC++6.0”,或在桌面上双击“MicrosoftVisualC++6.0”的快捷方式,就会启动VisualC++6.0。15 1.1.3创建和运行C++程序(2)在“文件”菜单下,选择“新建”命令,将弹出“新建”对话框选择“工程”标签下的“Win32ConsoleApplication”选项,可创建一个基于控制台应用程序的工程;在“工程”编辑栏内输入创建的工程名称(CH1_01);在“位置”编辑栏内输入工程的保存位置(E:student),确保单选按钮“R创建新工作区”被选定,其它选项选择默认值,单击“确定”按钮将弹出“Win32ConsoleApplition”项目步骤对话框。16 1.1.3创建和运行C++程序(3)在项目步骤对话框中,选择要创建应用程序的类型,共有4个选项:“Anemptyproject.”(一个空工程)“Asimpleapplication.”(一个简单应用程序)“A”Hello,World“application.”(一个“世界,你好”应用程序)“AnapplicationthatsupportMFC.”(一个支持MFC的应用程序)。例中选择第1个选项,创建一个空工程。17 1.1.3创建和运行C++程序(4)单击“确定”按钮,创建空工程的工作结束,回到VisualC++6.0的集成开发环境。至此,系统为工程CH1_01自动创建了E:studentCH1_01文件夹,并在其中生成了CH1_01.dsp、CH1_01.dsw、CH1_01.ncb和Debug文件夹。18 1.1.3创建和运行C++程序(5)在“文件”菜单下,选择“新建”命令,在出现的对话框中选择“文件”标签,选择“C++SourceFile”选项,创建一个C++源程序。然后在“文件”编辑栏内输入创建的C++源程序名(如CH1_01);在“目录”编辑栏内输入C++源程序的保存位置(如e:studentCH1_01)。19 1.1.3创建和运行C++程序(6)单击“确定”按钮即可进入代码编辑窗口,代码输入完毕后,单击“文件”菜单中的“保存”命令,或直接单击工具栏上的“保存”工具按钮,保存C++源程序,文件名为CH1_01.cpp。(7)选择“编译”菜单下的“编译CH1_01.cpp”项或单击微型编译工具栏中的“编译程序”工具按钮,对C++源程序CH1_01.cpp进行编译。如果编译有错误,需要回到程序编辑窗口重新编辑,直到没有错误为止。20 1.1.3创建和运行C++程序(8)编译完成后,选择命令:“编译”|“构建CH1_01.exe”或单击微型编译工具栏中的“构建程序”工具按钮,如果没有连接错误,将生成可执行文件CH1_01.exe。(9)用户可以在Windows环境下直接用鼠标双击CH1_01.exe文件,或者单击微型编译工具栏中的“执行程序”工具按钮,都可以执行程序。21 1.1.3创建和运行C++程序程序运行后,将弹出一个窗体要求用户输入两个整数,从键盘输入60和40,中间用空格分隔,回车。屏幕显示程序的运行结果。22 1.1.4VC++集成开发环境VisualC++6.0是微软公司开发的可视化的C++集成开发环境。它是集程序代码的编辑、编译、连接、调试等功能为一体,以一种方便、友好的界面提供给用户。23 1.1.4VC++集成开发环境1.菜单栏下面是一些最常用的菜单:(1)文件:用于创建、打开、关闭、保存一个新的文件、工程或工作区程。(2)编辑:用于文件的编辑,如文件的复制、粘贴、查找等操作。(3)查看:用于打开、激活所需要的各种窗口,如工作区窗口、输出窗口、属性窗口等。(4)插入:用于创建新的资源和类等。(5)工程:用于向工程中添加文件、设置活动工程、工程属性等。(6)编译:用于程序的编译、构建、调试、运行、工程和配置等。(7)工具:用于选择或定制集成开发环境中的一些工具、宏操作等。(8)窗口:用于窗口的排列、拆分、隐藏或显示等。(9)帮助:提供帮助文件和关于等。24 1.1.4VC++集成开发环境2.工具栏通过工具栏,可以快速地使用常见的菜单选项。最常见的工具栏是标准工具栏。3.工作区窗口工作区窗口有ClassView(类视图)、ResourceView(资源视图)和FileView(文件视图)三个标签页,分别用来查看当前工程所包含的所有类、资源和文件。25 1.1.4VC++集成开发环境(1)ClassView(类视图),用于显示当前工作区工程的类,全局变量和函数。(2)FileView(文件视图):FileView标签页用于显示当前工程的源文件、头文件、资源文件等。26 1.1.4VC++集成开发环境4.输出窗口输出窗口有多个标签页,最常用的是“编译”。在编译、连接、运行过程中显示系统提供的有关信息,如出错信息等。27 1.2数据类型和表达式1.2.1基本语法成分1.2.2基本数据类型1.2.3变量和常量1.2.4运算符和表达式1.2.5数组类型1.2.6结构体和共用体1.2.7指针和引用28 1.2.1基本语法成分计算机语言是人与计算进行交流的工具,它也有严格的字符集和严密的语法规则。C++语言的基本要素是字符集,由字符集中的若干字符按照一定的语法规则组成C++程序中各种成分。下面介绍字符集、标识符和关键字。29 1.2.1基本语法成分1.字符集C++语言的字符集包括:(1)大小写英文字母:A~Z,a~z(2)数字:0~9(3)特殊字符:空格!#%^&*_(下划线)+-=~<>/'";.,()[]{}∶30 1.2.1基本语法成分2.标识符标识符是用户用来标识程序中函数名,类型名、常量名、变量名、对象名等实体而定义的单词。C++语言中标识符的命名规则如下:(1)识符是由英文字母(包括大写和小写)、数字和下划线组成,并且以字母和下划线开始,其后跟零个或多个字母、数字或下划线。注意:标识符不可以数字开始。(2)标识符区分大、小写字母。例如,Aa和aa是两个不同的标识符。(3)标识符的长度是任意的,但有的编译系统仅能识别前32个字符。(4)标识符不能和C++语言的关键字同名。31 1.2.1基本语法成分3.关键字关键字是C++系统用于特殊用途的单词。下面列举一些C++中常用的关键字:autobreakboolcasecharclassconstcontinue32 1.2.2基本数据类型33 1.2.2基本数据类型数据类型说明占字节数范围bool布尔型true,falsechar(signedchar)字符型1-128~127unsignedchar无符号字符型10~255short(signedshort)短整型2-32768~32767unsignedshort无符号短整型20~65535int(signedint)基本整型4-2147483648~2147483647unsignedint无符号整型40~4294967295long(signedlong)长整型4-2147483648~2147483647unsignedlong无符号长整型40~4294967295float单精度型4-3.4×10-38~3.4×1038double双精度型8-1.7×10-308~1.7×1030834 1.2.3变量和常量1.常量(1)整型常量整型常量即整型常数,没有小数部分,可以用十进制、八进制和十六进制3种形式来表示。(2)浮点型常量浮点型常量又称实型常量,是由整数部分和小数部分组成的,只能用十进制表示。浮点型常量有两种表示方法:小数表示法和科学计数法。(3)字符常量C++中有两种字符常量,即一般字符常量和转义字符常量。35 1.2.3变量和常量(4)字符串常量字符串常量是用一对双引号括起来的字符序列。(5)符号常量在C++中,可以用一个标识符来表示一个常量,这个标识符就是符号常量。36 1.2.3变量和常量C++语言提供了两种定义符号常量的方法:①用const语句定义符号常量②用#define语句定义符号变量37 1.2.3变量和常量2.变量变量是指在程序运行过程中其值可以变化的量。C++中变量使用前必须先定义。①变量的定义变量定义的一般格式为:数据类型变量名1,变量名2,……②变量赋值与初始化在使用已定义的变量前,要保证变量存储的是确定的值。38 1.2.4运算符和表达式C++中常见的表达式有:算术表达式关系表达式逻辑表达式条件表达式赋值表达式39 1.2.4运算符和表达式使用运算符时,要注意以下几点:(1)运算符实现的功能。(2)操作数个数及类型。(3)运算符的优先级别。即多个运算符同时出现在同一个表达式时,先进行优先级高的运算,后作优先级低的运算。(4)运算符的结合性。40 1.2.4运算符和表达式常用的运算符和表达式:1.算术运算符及算术表达式C++中的算术运算符有:+(取正或加)、-(取负或减)、*(乘)、/(除)、%(取余)、++(增1)、--(减1)。其中+(取正)、-(取负)、++(增1)、--(减1)是单目运算符,其余是双目运算符。41 1.2.4运算符和表达式2.关系运算符及关系表达式关系运算是比较两个操作数的大小,其结果是一个布尔型的值。当两个操作数满足关系运算符指定的关系时,表达式的值为true,否则为false。在C++中,关系运算符都是双目运算符,共有6个:<(小于)、<=(小于或等于)、>(大于)、(大于或等于)、==(等于)、!=(不等于)。其中前4种和后2种属于不同的优先级,前4种的优先级高于后2种。42 1.2.4运算符和表达式3.逻辑运算符及逻辑表达式逻辑运算符共有3个:1个单目运算符!(逻辑求反),2个双目运算符&&(逻辑与)和||(逻辑或)。其中逻辑与的优先级比逻辑或高。逻辑运算的结果是逻辑值。参与逻辑运算的操作数可以是任一基本类型的数据,在进行判断时,系统将非零值作为真,零为假。43 1.2.4运算符和表达式4.赋值运算符和赋值表达式C++中的赋值运算符分为两种:简单赋值运算符(“=”)复合赋值运算符(+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。)。赋值运算符都是二元运算符、右结合。由赋值运算符和操作数组成的表达式称为赋值表达式。44 1.2.4运算符和表达式5.位运算符C++提供了6个位运算符:~(按位求反)、&(按位与)、|(按位或)、^(按位异或)、<<(右移位)、>>(左移位)。其中~(按位求反)是单目运算符,其余都是双目运算符。位运算符是对其操作数按二进制形式逐位进行运算,参与运算的操作数都应为整数,不能是实型数。45 1.2.4运算符和表达式6.条件运算符条件运算符“?:”是C++中唯一的一个三目运算符,其使用的一般形式为:表达式1?表达式2:表达式346 1.2.4运算符和表达式7.逗号运算符由逗号运算符构成的表达式称为逗号表达式,其一般形式为:表达式1,表达式2,…,表达式n逗号表达式的执行规则是从左到右,逐个表达式执行,最后一个表达式的值是该逗号表达式的值。注意:逗号运算符“,”的优先级最低。47 1.2.4运算符和表达式8.表达式中数据类型的转换(1)自动转换(2)强制转换其一般形式为:数据类型(表达式)或(数据类型)表达式48 1.2.5数组类型1.一维数组定义一维数组的一般格式为:<数据类型><数组名>[长度]例如:intA[100]表示数组名为A,该数组有100个元素,数组元素的类型为整型。49 1.2.5数组类型在定义一维数组时要注意以下几点:(1)数据类型是指数组元素的类型。(2)数组名的命名规则要遵循C++关于标识符的命名规则。(3)数组元素的下从0开始到长度减1,C++对数组下标越界不做检查。(4)必须说明数组的长度,且这个长度要用一个确定的正整数常量或常量表达式来表示。50 1.2.5数组类型2.二维数组二维数组定义的一般形式为:<数组类型><数组名>[长度][长度]例如:inta[4][3]就定义了一个二维数组a,其数据元素为a[0][0]、a[0][1]……a[4][3]。引用二维数组元素的格式为:<数组名>[<行下标>][<列下标>]例如:inta[2][3];51 1.2.5数组类型3.字符数组字符数组是一个字符类型的数组,它用来存放字符或字符串,其中每一个数组元素对应一个字符。字符数组定义的格式为:char数组名[长度];52 1.2.6结构体和共用体1.结构体由数目固定的成员构成,各成员可以具有不同的数据类型。一个结构变量在内存占有一片连续的存储空间C++中结构体定义的一般语法形式为:struct结构体名{类型成员1;类型成员2;┇类型成员n;};53 1.2.6结构体和共用体结构体是一种特殊的数据类型,结构体的定义仅仅是给出了该结构体的组成情况,它和基本数据类型int、double等一样,系统并不为其分配实际的存储单元。为了使用它,必须定义结构体变量。结构体变量声明的一般格式如下:结构体结构体变量;或结构体结构体变量;54 1.2.6结构体和共用体结构体变量初始化的一般格式为:struct结构体名结构体变量名={初值};或结构体名结构体变量名={初值};结构体成员引用的一般格式为:结构体变量.成员名其中,符号“.”是成员运算符,用于访问一个结构体变量中的某个结构体成员。55 1.2.6结构体和共用体共用体共用体同结构体一样,也是一种自定义的数据类型,由若干数据成员组成。虽然共用体与结构体有很多相似之处,但两者还是有本质区别的。在任一时刻,结构体中的所有成员都是有意义的,而共用体中只有一个成员有意义。这种不同反映到存储空间分配上就是结构体变量各成员顺序存放在一段内存中,每个成员分别占有自己的内存单元,结构体变量所占存储空间的大小等于其所有数据成员所占存储空间的总和。而共用体变量的各成员均从同一地址开始存放,共同占用同一存储空间,即各成员所占用的存储空间是相互覆盖的。56 1.2.6结构体和共用体共用体定义的一般形式为:union共用体名{数据类型成员1;数据类型成员2;┇数据类型成员n};共用体类型变量说明的一般语法形式为:共用体共用体变量名;57 1.2.7指针和引用1.指针的基本概念C++程序中定义变量,在编译时系统为每一个变量分配内存空间。。所谓指针就是一个存储单元的地址值,用来存放地址(即指针)的变量也称指针变量。指针是一个变量,必须先声明后使用。指针变量声明的一般形式如下:数据类型*标识符;58 1.2.7指针和引用与指针有关的基本运算符有以下两个:(1)取地址运算符&:&变量名。用来获取变量的首地址。(2)间接访问运算符*:*指针变量名。也称“指向运算符”或“取内容运算符”,表示访问该指针变量所指向的变量的值,即访问指针所指向的存储单元的内容。59 1.2.7指针和引用2.指针的赋值如果用户声明了一个指针变量,在使用该指针变量之前必须对它赋初值。否则,在程序中使用该指针变量就有可能导致系统崩溃。例如:inti,*p1=&i;int*p2=p1;60 1.2.7指针和引用3.指针的运算指针是一个变量,其值是一个地址。因此,它只能参与赋值、算术及关系运算。(1)算术运算(2)关系运算两个指针进行关系运算时,它们必须指向同一连续存储空间。61 1.2.7指针和引用4.多级指针由于指针是一个变量,在内存中占据一定的存储空间,具有一个地址,这个地址也可以利用指针来保存。声明二级指针的格式为:数据类型**标识符62 1.2.7指针和引用5.指针与数组在C++语言中,指针与数组之间存在着密切的关系。它们都可以处理内存中连续存放的一系列数据,数组和指针在访问内存时采用相同的计算方法,在某些场合下指针和数组的表现形式具有相同的意义。使用下标法对内存中的数组元素进行处理,指针和数组表现形式具有相同的意义,因为指针和数组名都是地址量。63 1.2.7指针和引用6.指针与字符串在C++语言中,字符串用字符数组来处理,有时也把字符串称为字符数组。例如:charstr1[]="HelloWorld!";char*pstr=str;cout<*<指针变量>=new<数据类型>;动态创建数组的一般格式如下:<数据类型>*<指针变量>=new数据类型[长度];66 1.2.7指针和引用(2)运算符delete当程序中不再需要使用运算符new申请到的内存空间时,必须要使用运算符delete来释放空间。一般操作形式如下:delete指针名;//释放非数组内存单元delete[]指针名;//释放数组内存单元67 1.2.7指针和引用8.引用在C++语言中,提供了一种为变量起一个别名的机制,这个别名就是引用。声明引用的一般格式如下:数据类型&引用名=变量名;或数据类型&引用名(变量名);68 1.2.7指针和引用使用引用应注意以下几点:(1)声明引用时,必须要初始化。(2)一旦为一个变量声明了一个引用,该引用就不能再作为其它变量的引用。(3)引用和其所代表的变量使用同一片存储空间,它并不另外占用存储空间。(4)对引用的操作就是对被引用变量的操作。69 1.3程序控制结构1.3.1语句1.3.2选择语句1.3.3循环语句1.3.4转向语句70 1.3.1语句C++支持结构化程序设计,结构化程序有三种基本结构:顺序结构、选择结构和循环结构。表达式语句空语句复合语句71 1.3.2选择语句1.if语句if语句用来有条件地执行某一语句系列。if语句主要有以下几种形式:(1)if(表达式){语句;}72 1.3.2选择语句(2)if(表达式){语句1;}else{语句2;}(3)if(表达式1)<语句1>elseif(表达式2)<语句2>elseif(表达式3)<语句3>┇elseif(表达式n)<语句n>else<语句n+1>73 1.3.2选择语句2.switch语句在if语句嵌套使用时,如果嵌套层数太多,将使程序变得难于理解。为此,C++语言提供了switch语句来简化这一过程。switch语句又称开关语句,其一般语法格式为:switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;┇case常量表达式n:语句n;default:语句n+1;}74 1.3.3循环语句1.while循环语句while循环语句的语法格式为:while(表达式){循环体语句;}75 1.3.3循环语句2.do-while循环语句do-while循环语句的语法形式为:do{循环体语句;}while(表达式);76 1.3.3循环语句3.for循环语句for循环语句比while循环语句和do-while循环语句功能更为强大。for循环语句的一般语法格式为:for(表达式1;表达式2;表达式3){循环体语句;}77 1.3.3循环语句在使用for循环语句时,注意以下几种情况:(1)for语句中的3个表达式可以没有。但每个表达式后的分号不能省略。此时for循环语句的形式为:for(;;)这时在循环体内必须有其他控制循环执行的语句,否则会形成死循环。(2)表达式1如果不存在或不是用来给循环变量赋初值,则应在for语句前给循环变量赋初值。(3)表达式2如果不存在,则在for语句循环体内应有其他控制循环执行的语句,否则会形成死循环。(4)表达式3如果不存在或不是用来修改循环变量的值,则应在for语句循环体内设置相应的语句。78 1.3.4转向语句1.goto语句goto语句一般语法格式为:goto语句标号;2.break语句break语句的一般语法格式如下:break;3.continue语句continue语句的一般语法格式为:continue;79 1.4函数1.4.1函数的定义和说明1.4.2函数的调用1.4.3函数的参数1.4.4函数的嵌套调用和递归调用1.4.5作用域和存储类型1.4.6内联函数1.4.7函数重载1.4.8字符串处理函数80 1.4.1函数的定义和说明函数定义的一般语法格式如下:函数类型函数名(参数表){函数体;}C++最重要的特征之一是函数原型。函数原型的说明一般语法格式为:类型函数名(参数列表);81 1.4.2函数的调用1.函数调用的概念函数调用是用一个表达式来表示的。其调用的一般格式为:函数名(实参列表)要求实参与形参的个数相同、类型一致、顺序一致。82 1.4.2函数的调用函数的返回值是在被调用函数中,通过返回语句return来实现的。返回语句return有两个重要的作用:其一是使函数立即返回到其主调程序,其二是返回某个值。函数有两种返回情况,一种是无返回值,一种是有返回值。当函数无返回值时,函数类型必须用关键字void加以说明。83 1.4.3函数的参数1.传值调用这种方法是用参数传递数据的最常用的方法。传值调用是指函数调用时,给形参分配存储空间,系统计算实参表达式的值,并把实参的值按顺序赋给对应的形式参数,即对形参进行初始化,然后执行函数体。84 1.4.3函数的参数2.传址调用使用传址调用方式时,形参是指针变量,实参是地址值,由主调程序向被调用函数传递地址。在函数调用时,把实参数地址赋给形式参数,形参和实参都表示同一地址中的值。因此,形参所指向内容的任何改变都会导致实参所指向内容的改变。85 1.4.3函数的参数3.引用调用引用也是一种特殊类型的变量,它不同于指针。引用是为程序中变量取一个别名,引用作为函数的参数时,形参是实参的引用,则形参和实参指的是同一个变量,在函数调用中对形参的改变实际上就是对实参的改变。86 1.4.4函数的嵌套调用和递归调用1.函数的嵌套调用程序从主函数开始执行,遇到函数调用时,如果函数是有参函数,C++先进行实参对形参的替换,然后执行被调用函数的函数体。如果函数体中还调用其他函数,再转入执行其他函数体。函数体执行完毕后,返回到主调函数,继续执行主调函数中的后续程序行。若在一个函数中又调用另一个函数,则称这样的调用过程为函数的嵌套调用87 1.4.4函数的嵌套调用和递归调用2.函数的递归调用在调用一个函数的过程中出现直接或间接调用该函数本身,称作函数的递归调用。这样的函数称为递归函数。编写递归函数时,必须有终止递归调用的条件。88 1.4.5作用域和存储类型1.作用域作用域是一个标识符在程序中有效范围。C++的作用域有函数原型作用域、块作用域、函数作用域和文件作用域。函数原型参数列表中的标识符具有函数原型作用域。函数原型只需要参数的类型,并不需要参数名。参数名只在函数原型声明的两个圆括号内有效。89 1.4.5作用域和存储类型块作用域又称局部作用域。在一个复合语句内声明的标识符具有块作用域,其作用域是从声明处开始,一直到复合语句结束的花括号为止。由于函数体在句法上可以看作一个复合语句,所以函数中声明的标识符具有块作用域。另外函数的形参也属于块作用域。90 1.4.5作用域和存储类型2.局部变量和全局变量局部变量具有局部作用域。局部变量仅在定义它的函数或类内起作用,在这个范围之外不能使用这些变量。全局变量是在函数和类外部定义的变量。全局变量的作用域从说明点开始直到文件的结束。这种作用域也称为文件作用域。91 1.4.5作用域和存储类型提示:好的程序设计方法是用函数交换信息应使用参数和返回值,而不使用全局变量。如果全局变量与函数的局部变量同名,在函数的局部变量的作用域内,同名的全局变量无效。为了在函数体内使用与局部变量同名的全局变量,应在全局变量前面使用作用域作用符“::”。92 1.4.5作用域和存储类型3.变量的存储类型C++把程序运行时所占用的存储空间分为程序代码区域、静态存储区域和动态存储区域三部分,动态存储区域又分为堆栈区域和堆区域。变量主要分配在静态和动态两个区域中,另外,有些变量还可以分配在计算机中的寄存器中。在定义变量时不仅要指明变量的数据类型,还要指出变量的存储类型。因此,变量的一般定义格式为:存储类型数据类型变量名[=初值];C++中常用的存储类型有:auto(自动类型)、register(寄存器类型)、static(静态类型)、extern(全局类型)。93 1.4.5作用域和存储类型4.内部函数和外部函数C++中所有函数定义都是独立的,不能嵌套。(1)内部函数内部函数又称为静态函数,它只能在定义它的源文件中被调用,而不能被其他源文件的函数调用。在定义内部函数时,在函数名和函数类型的前面加static。static数据类型函数名(形参表)(2)外部函数在定义函数时,如果前面加关键字extern,表示此函数为外部函数。外部函数可以被其他源文件的函数调用,若在定义函数时省略关键字extern,则隐含为外部函数。94 1.4.6内联函数引入内联函数的目的是为了解决函数调用的效率问题。使用内联函数,加快了程序的执行速度,但如果函数体中的语句很多,则会增加程序代码的长度。由于C++编译程序必须知道内联函数的函数体,才能进行内联替换,因此,内联函数必须在程序中第一次调用此函数的语句前通知C++编译程序。95 1.4.6内联函数除了带有循环语句、switch语句的函数不能被说明为内联函数外,都可以被说明为内联函数。内联函数的定义形式为:inline类型函数名(形式参数列表);96 1.4.7函数重载所谓函数重载是指同一个函数名可以对应着多个不同函数的实现。函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码。确定函数时,编译器是通过函数的参数个数、参数类型和参数顺序来区分的。97 1.4.8字符串处理函数1.字符串拷贝函数strcpy()char*strcpy(char*str1,constchar*str2);2.字符串连接函数strcat()char*strcat(char*str1,char*str2);3.字符串比较函数strcmp()intstrcmp(constchar*str1,constchar*str2);intstrncmp(constchar*str1,constchar*str2,intn);4.字符串长度函数strlen()intstrlen(constchar*str);98 总结讲解了程序设计的概念介绍了C++程序的开发过程介绍了C++的运算符和表达式的使用方法介绍了C++的数据类型,包括基本数据类型和构造数据类型讲解了掌握基本控制语句的使用:if、switch、while、do~while、for的使用和基本结构详细的介绍了函数的使用过程99
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处