《工信版(中职)编程语言基础------C++模块2教学课件.ppt》由会员分享,可在线阅读,更多相关《工信版(中职)编程语言基础------C++模块2教学课件.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、YCF(中职)编程语言基础-C+模块2教学课件模块二模块二 数据类型数据类型任务任务1 基本数据类型基本数据类型任务任务2 结构数据类型结构数据类型任务任务3 常量常量任务任务4 变量变量返回任务任务1 基本数据类型基本数据类型 C+C+提供厂十分丰富的预定义数据类型,称为基本数据类型。基本数提供厂十分丰富的预定义数据类型,称为基本数据类型。基本数提供厂十分丰富的预定义数据类型,称为基本数据类型。基本数提供厂十分丰富的预定义数据类型,称为基本数据类型。基本数据类型包括字符型、整型、浮点型和无值型据类型包括字符型、整型、浮点型和无值型据类型包括字符型、整型、浮点型和无值型据类型包括字符型、整型、
2、浮点型和无值型4 4种,其中,浮点型又分种,其中,浮点型又分种,其中,浮点型又分种,其中,浮点型又分为单精度浮点型和双精度浮点型两种。为单精度浮点型和双精度浮点型两种。为单精度浮点型和双精度浮点型两种。为单精度浮点型和双精度浮点型两种。C+C+提供的提供的提供的提供的4 4种基本数据类型各自所占的内存空间是不同的,因此所种基本数据类型各自所占的内存空间是不同的,因此所种基本数据类型各自所占的内存空间是不同的,因此所种基本数据类型各自所占的内存空间是不同的,因此所表示的数据范围大小也不同。同时表示的数据范围大小也不同。同时表示的数据范围大小也不同。同时表示的数据范围大小也不同。同时C+C+为每种
3、不同的数据类型规定厂为每种不同的数据类型规定厂为每种不同的数据类型规定厂为每种不同的数据类型规定厂固定的关键字,用于标识和区分不同的数据类型,如固定的关键字,用于标识和区分不同的数据类型,如固定的关键字,用于标识和区分不同的数据类型,如固定的关键字,用于标识和区分不同的数据类型,如表表表表2-12-1所示。所示。所示。所示。在基本数据类型中,字符型用于处理在基本数据类型中,字符型用于处理在基本数据类型中,字符型用于处理在基本数据类型中,字符型用于处理ASCIIASCII码字符,整型用于处理整码字符,整型用于处理整码字符,整型用于处理整码字符,整型用于处理整型数据,单精度和双精度浮点型用于处理带
4、小数的实数,而无值型主型数据,单精度和双精度浮点型用于处理带小数的实数,而无值型主型数据,单精度和双精度浮点型用于处理带小数的实数,而无值型主型数据,单精度和双精度浮点型用于处理带小数的实数,而无值型主要用于处理函数和指针。要用于处理函数和指针。要用于处理函数和指针。要用于处理函数和指针。下一页返回任务任务1 基本数据类型基本数据类型2.1.1 类型修饰符类型修饰符 为厂进一步满足程序设计的需要为厂进一步满足程序设计的需要为厂进一步满足程序设计的需要为厂进一步满足程序设计的需要,C+,C+还允许在基本数据类型还允许在基本数据类型还允许在基本数据类型还允许在基本数据类型(除除除除voidvoid
5、类型外类型外类型外类型外)前加上类型修饰符来更具体地表示数据类型。前加上类型修饰符来更具体地表示数据类型。前加上类型修饰符来更具体地表示数据类型。前加上类型修饰符来更具体地表示数据类型。C+C+的类型修饰的类型修饰的类型修饰的类型修饰符包括符包括符包括符包括:signedsigned有符号型有符号型有符号型有符号型unsignedunsigned无符号型无符号型无符号型无符号型shortshort短型短型短型短型long long 长型长型长型长型在基本数据类型前加上类型修饰符后,在基本数据类型前加上类型修饰符后,在基本数据类型前加上类型修饰符后,在基本数据类型前加上类型修饰符后,C+C+的基
6、本数据类型如的基本数据类型如的基本数据类型如的基本数据类型如表表表表2-22-2所所所所示。示。示。示。上一页 下一页返回任务任务1 基本数据类型基本数据类型(1)(1)表中带表中带表中带表中带 的部分表示是可以省略的,如的部分表示是可以省略的,如的部分表示是可以省略的,如的部分表示是可以省略的,如shortintshortint可以写为可以写为可以写为可以写为short intshort int或简写为或简写为或简写为或简写为short,short,二者的含义是相同的。二者的含义是相同的。二者的含义是相同的。二者的含义是相同的。(2)4(2)4种修饰符都可以用来修饰整型和字符型。用种修饰符都
7、可以用来修饰整型和字符型。用种修饰符都可以用来修饰整型和字符型。用种修饰符都可以用来修饰整型和字符型。用signedsigned修饰的类型修饰的类型修饰的类型修饰的类型的值可以为正数或负数,用的值可以为正数或负数,用的值可以为正数或负数,用的值可以为正数或负数,用unsignedunsigned修饰的类型的值只能为正数。修饰的类型的值只能为正数。修饰的类型的值只能为正数。修饰的类型的值只能为正数。(3)(3)用用用用shorrtshorrt修饰的类型的值一定不大于对应的整数,用修饰的类型的值一定不大于对应的整数,用修饰的类型的值一定不大于对应的整数,用修饰的类型的值一定不大于对应的整数,用lo
8、nglong修饰的修饰的修饰的修饰的类型的值一定不小于对应的整数。类型的值一定不小于对应的整数。类型的值一定不小于对应的整数。类型的值一定不小于对应的整数。上一页 下一页返回任务任务1 基本数据类型基本数据类型2.1.2 关键字关键字在在在在C+C+语言中,关键字语言中,关键字语言中,关键字语言中,关键字(keyword)(keyword)又称为保留字,它是系统预先定义的、又称为保留字,它是系统预先定义的、又称为保留字,它是系统预先定义的、又称为保留字,它是系统预先定义的、具有特定含义的标识符,因此不允许用户重新定义,即不能作为新的具有特定含义的标识符,因此不允许用户重新定义,即不能作为新的具
9、有特定含义的标识符,因此不允许用户重新定义,即不能作为新的具有特定含义的标识符,因此不允许用户重新定义,即不能作为新的标识符出现在程序中。标识符出现在程序中。标识符出现在程序中。标识符出现在程序中。C+C+中常用的关键字有中常用的关键字有中常用的关键字有中常用的关键字有break,char,class,const,continue,default break,char,class,const,continue,default,delete,do,double,else,enum,false,float,for,friend,delete,do,double,else,enum,false,fl
10、oat,for,friend、gotogoto、if,if,inline,intinline,int、longlong、newnew、privateprivate、protectedprotected、publicpublic、returnreturn、shortshort、signed,static,struct,switch,this,template,this,true,try,unionsigned,static,struct,switch,this,template,this,true,try,union等。等。等。等。这些关键字都是这些关键字都是这些关键字都是这些关键字都是C+C+
11、的保留字,用户不能再重新定义。的保留字,用户不能再重新定义。的保留字,用户不能再重新定义。的保留字,用户不能再重新定义。上一页 下一页返回任务任务1 基本数据类型基本数据类型2.1.3 标识符标识符标识符是由若干个字符组成的字符序列,用来命名程序中的一些实体。标识符是由若干个字符组成的字符序列,用来命名程序中的一些实体。标识符是由若干个字符组成的字符序列,用来命名程序中的一些实体。标识符是由若干个字符组成的字符序列,用来命名程序中的一些实体。通常用于常量名、变量名、函数名、类名、结构名、联合名、对象名、通常用于常量名、变量名、函数名、类名、结构名、联合名、对象名、通常用于常量名、变量名、函数名
12、、类名、结构名、联合名、对象名、通常用于常量名、变量名、函数名、类名、结构名、联合名、对象名、类型名和标号名等。在程序中用户是通过标识符来定义和引用这些对类型名和标号名等。在程序中用户是通过标识符来定义和引用这些对类型名和标号名等。在程序中用户是通过标识符来定义和引用这些对类型名和标号名等。在程序中用户是通过标识符来定义和引用这些对象的。象的。象的。象的。C+C+语言中构成标识符的语法规则如下。语言中构成标识符的语法规则如下。语言中构成标识符的语法规则如下。语言中构成标识符的语法规则如下。(1)(1)标识符由字母标识符由字母标识符由字母标识符由字母(az,AZ)(az,AZ)、数字、数字、数字
13、、数字(0 9)(0 9)或下划线或下划线或下划线或下划线(_)(_)组成组成组成组成 (2)(2)第一个字符必须是字母或下划线。例如第一个字符必须是字母或下划线。例如第一个字符必须是字母或下划线。例如第一个字符必须是字母或下划线。例如:Example,My_Birthday,:Example,My_Birthday,Message,Mychar,Myfriend,thistimeMessage,Mychar,Myfriend,thistime是合法的标识符是合法的标识符是合法的标识符是合法的标识符;5key,5-A;5key,5-A是非法是非法是非法是非法的标识符。的标识符。的标识符。的标识
14、符。(3)VC+(3)VC+中标识符最多由中标识符最多由中标识符最多由中标识符最多由247247个字符组成个字符组成个字符组成个字符组成上一页 下一页返回任务任务1 基本数据类型基本数据类型(4)C+(4)C+标识符对大小写字母是敏感的,即大小写字母被认为是两个不标识符对大小写字母是敏感的,即大小写字母被认为是两个不标识符对大小写字母是敏感的,即大小写字母被认为是两个不标识符对大小写字母是敏感的,即大小写字母被认为是两个不同的标识符例如,同的标识符例如,同的标识符例如,同的标识符例如,hookhook和和和和BookBook被认为是两个不同的标识符。被认为是两个不同的标识符。被认为是两个不同的
15、标识符。被认为是两个不同的标识符。(5)(5)关键字不能作为新的标识符在程序中使用,但标识符中可以包含关键字不能作为新的标识符在程序中使用,但标识符中可以包含关键字不能作为新的标识符在程序中使用,但标识符中可以包含关键字不能作为新的标识符在程序中使用,但标识符中可以包含关键字。例如,关键字。例如,关键字。例如,关键字。例如,intx,myclassintx,myclass是合法的标识符。是合法的标识符。是合法的标识符。是合法的标识符。标点符号对标点符号对标点符号对标点符号对C+C+编译器具有语法意义,它们本身并不表示一个产生编译器具有语法意义,它们本身并不表示一个产生编译器具有语法意义,它们本
16、身并不表示一个产生编译器具有语法意义,它们本身并不表示一个产生值的操作。下面列出了值的操作。下面列出了值的操作。下面列出了值的操作。下面列出了C+C+语言中的标点符号。语言中的标点符号。语言中的标点符号。语言中的标点符号。上一页 下一页返回任务任务1 基本数据类型基本数据类型,逗号,用作数据之间的分隔符。,逗号,用作数据之间的分隔符。,逗号,用作数据之间的分隔符。,逗号,用作数据之间的分隔符。;分号,语句结束符。分号,语句结束符。分号,语句结束符。分号,语句结束符。:冒号,语句标号结束符或条件运算符。冒号,语句标号结束符或条件运算符。冒号,语句标号结束符或条件运算符。冒号,语句标号结束符或条件
17、运算符。单引号,字符常量标记符。单引号,字符常量标记符。单引号,字符常量标记符。单引号,字符常量标记符。”双引号,字符串常量标记符。双引号,字符串常量标记符。双引号,字符串常量标记符。双引号,字符串常量标记符。左花括号,复合语句开始标记符。左花括号,复合语句开始标记符。左花括号,复合语句开始标记符。左花括号,复合语句开始标记符。右茬括号,复合语句结甫标记答右茬括号,复合语句结甫标记答右茬括号,复合语句结甫标记答右茬括号,复合语句结甫标记答上一页 下一页返回任务任务1 基本数据类型基本数据类型分隔符是用来分隔单词或程序正文的,表示某个程序实体的结束和另分隔符是用来分隔单词或程序正文的,表示某个程
18、序实体的结束和另分隔符是用来分隔单词或程序正文的,表示某个程序实体的结束和另分隔符是用来分隔单词或程序正文的,表示某个程序实体的结束和另一个程序实体的开始。分隔符本身并不对程序的语法和语义产生任何一个程序实体的开始。分隔符本身并不对程序的语法和语义产生任何一个程序实体的开始。分隔符本身并不对程序的语法和语义产生任何一个程序实体的开始。分隔符本身并不对程序的语法和语义产生任何影响,是一种不被编译的符号。影响,是一种不被编译的符号。影响,是一种不被编译的符号。影响,是一种不被编译的符号。C+C+的分隔符可以是一个或多个空格的分隔符可以是一个或多个空格的分隔符可以是一个或多个空格的分隔符可以是一个或
19、多个空格符、制表符、换行符及注释符。符、制表符、换行符及注释符。符、制表符、换行符及注释符。符、制表符、换行符及注释符。标识符是在标识符是在标识符是在标识符是在C+C+程序中为常量、变量程序中为常量、变量程序中为常量、变量程序中为常量、变量(数据类型数据类型数据类型数据类型)和其他实体选定的和其他实体选定的和其他实体选定的和其他实体选定的名字。它的第一个字符必须是字母或下划线,随后的字符可以包含数名字。它的第一个字符必须是字母或下划线,随后的字符可以包含数名字。它的第一个字符必须是字母或下划线,随后的字符可以包含数名字。它的第一个字符必须是字母或下划线,随后的字符可以包含数字,如字,如字,如字
20、,如表表表表2-32-3,字符可以是大写形式,也可以是小写形式。标识符名字,字符可以是大写形式,也可以是小写形式。标识符名字,字符可以是大写形式,也可以是小写形式。标识符名字,字符可以是大写形式,也可以是小写形式。标识符名字所允许的长度因系统而异。所允许的长度因系统而异。所允许的长度因系统而异。所允许的长度因系统而异。上一页返回任务任务2 结构数据类型结构数据类型C+C+中的结构数据类型可分为数组类型、结构体类型和共用体类型。中的结构数据类型可分为数组类型、结构体类型和共用体类型。中的结构数据类型可分为数组类型、结构体类型和共用体类型。中的结构数据类型可分为数组类型、结构体类型和共用体类型。2
21、.2.1 数组数组处理处理处理处理10001000个整数时,除厂连续定义个整数时,除厂连续定义个整数时,除厂连续定义个整数时,除厂连续定义10001000个个个个intint类型的变量外,有没有更类型的变量外,有没有更类型的变量外,有没有更类型的变量外,有没有更加简单的处理方式加简单的处理方式加简单的处理方式加简单的处理方式?答案是肯定的,就是利用数组。答案是肯定的,就是利用数组。答案是肯定的,就是利用数组。答案是肯定的,就是利用数组。数组是数日固定、类型相同的若干个对象的有序集合,这些对象称数组是数日固定、类型相同的若干个对象的有序集合,这些对象称数组是数日固定、类型相同的若干个对象的有序集
22、合,这些对象称数组是数日固定、类型相同的若干个对象的有序集合,这些对象称为数组的元素。为数组的元素。为数组的元素。为数组的元素。数组定义的一般形式为数组定义的一般形式为数组定义的一般形式为数组定义的一般形式为:数组类型数组名数组类型数组名数组类型数组名数组类型数组名 维维维维11维维维维2=2=初值列表初值列表初值列表初值列表、初值列表初值列表初值列表初值列表、;下一页返回任务任务2 结构数据类型结构数据类型“数据类型数据类型数据类型数据类型”是指数组元素的类型,可以是是指数组元素的类型,可以是是指数组元素的类型,可以是是指数组元素的类型,可以是int,floatint,float等基本数据类
23、型,等基本数据类型,等基本数据类型,等基本数据类型,也可以是用户自定义数据类型、指针类型等。也可以是用户自定义数据类型、指针类型等。也可以是用户自定义数据类型、指针类型等。也可以是用户自定义数据类型、指针类型等。“数组名数组名数组名数组名”对应着一块对应着一块对应着一块对应着一块内存区域,其地址与容量在生命期内保持不变。内存区域,其地址与容量在生命期内保持不变。内存区域,其地址与容量在生命期内保持不变。内存区域,其地址与容量在生命期内保持不变。“”是数组类型修是数组类型修是数组类型修是数组类型修饰符。饰符。饰符。饰符。“维维维维”是是是是unsigned intunsigned int类型的数
24、值,用来限制数组中元素的个数类型的数值,用来限制数组中元素的个数类型的数值,用来限制数组中元素的个数类型的数值,用来限制数组中元素的个数(数组大小数组大小数组大小数组大小)和元素的排列次序。含一个和元素的排列次序。含一个和元素的排列次序。含一个和元素的排列次序。含一个“”的数组称为一维数组,的数组称为一维数组,的数组称为一维数组,的数组称为一维数组,含二个含二个含二个含二个“”的数组称为二维数组。定义数组时,的数组称为二维数组。定义数组时,的数组称为二维数组。定义数组时,的数组称为二维数组。定义数组时,“维维维维”必须是确定必须是确定必须是确定必须是确定的数值。初值列表用来初始化数组,也就是为
25、数组元素提供初始值。的数值。初值列表用来初始化数组,也就是为数组元素提供初始值。的数值。初值列表用来初始化数组,也就是为数组元素提供初始值。的数值。初值列表用来初始化数组,也就是为数组元素提供初始值。下面将详细地介绍一维数组、二维数组和字符数组。下面将详细地介绍一维数组、二维数组和字符数组。下面将详细地介绍一维数组、二维数组和字符数组。下面将详细地介绍一维数组、二维数组和字符数组。上一页 下一页返回任务任务2 结构数据类型结构数据类型1.1.一维数组一维数组一维数组一维数组定义一维数组的一般格式为定义一维数组的一般格式为定义一维数组的一般格式为定义一维数组的一般格式为:n;n;其中其中其中其中
26、n n是一个常量,表示元素的个数。是一个常量,表示元素的个数。是一个常量,表示元素的个数。是一个常量,表示元素的个数。“”和和和和“”是一对方括号,是一对方括号,是一对方括号,是一对方括号,表示里面的是元素个数,表示里面的是元素个数,表示里面的是元素个数,表示里面的是元素个数,“;”;”是语句结束符。是语句结束符。是语句结束符。是语句结束符。语句语句语句语句:int a 8;:int a 8;定义厂一个数组,定义厂一个数组,定义厂一个数组,定义厂一个数组,intint表示数组元素的类型是整型表示数组元素的类型是整型表示数组元素的类型是整型表示数组元素的类型是整型,a,a是数组名,是数组名,是数
27、组名,是数组名,8 8表表表表示数组中有示数组中有示数组中有示数组中有8 8个元素。用个元素。用个元素。用个元素。用a0,al,a0,al,a7a7分别表示这分别表示这分别表示这分别表示这8 8个整型元素,个整型元素,个整型元素,个整型元素,相当于相当于相当于相当于8 8个整型变量,方括号中的个整型变量,方括号中的个整型变量,方括号中的个整型变量,方括号中的0,1,2,3,4,5,6,70,1,2,3,4,5,6,7是是是是8 8个下标。如果有个下标。如果有个下标。如果有个下标。如果有n n个元素,则下标是从个元素,则下标是从个元素,则下标是从个元素,则下标是从0 0到到到到n-1n-1n-1
28、n-1。上一页 下一页返回任务任务2 结构数据类型结构数据类型注意注意注意注意:语句语句语句语句int a(2);int a(2);意思是定义一个整型变量意思是定义一个整型变量意思是定义一个整型变量意思是定义一个整型变量a a,并赋予初值,并赋予初值,并赋予初值,并赋予初值2 2,并不是,并不是,并不是,并不是定义一个数组定义一个数组定义一个数组定义一个数组下面是正确的数组类型说明下面是正确的数组类型说明下面是正确的数组类型说明下面是正确的数组类型说明:int 15;int 15;int x 37;int x 37;float Data1024;float Data1024;一次也可以说明多个
29、同类型数组一次也可以说明多个同类型数组一次也可以说明多个同类型数组一次也可以说明多个同类型数组:int a18,b26,c12;/int a18,b26,c12;/定义定义定义定义a,b,c 3a,b,c 3个整型数组个整型数组个整型数组个整型数组上一页 下一页返回任务任务2 结构数据类型结构数据类型同基本类型的变量一样,可以在定义数组的同时对其进行初始化,可同基本类型的变量一样,可以在定义数组的同时对其进行初始化,可同基本类型的变量一样,可以在定义数组的同时对其进行初始化,可同基本类型的变量一样,可以在定义数组的同时对其进行初始化,可以把数组定义改以把数组定义改以把数组定义改以把数组定义改为
30、为为为:int a2=3,5;:int a2=3,5;这样不仅定义厂一个数组这样不仅定义厂一个数组这样不仅定义厂一个数组这样不仅定义厂一个数组a a,同时将它的两个元素,同时将它的两个元素,同时将它的两个元素,同时将它的两个元素分别初始化为分别初始化为分别初始化为分别初始化为3 3和和和和5 5,也就是,也就是,也就是,也就是a0=3a0=3,a1=5a1=5 在定义时给数组初始化,既可以给全部的元素赋初值,也可以只给在定义时给数组初始化,既可以给全部的元素赋初值,也可以只给在定义时给数组初始化,既可以给全部的元素赋初值,也可以只给在定义时给数组初始化,既可以给全部的元素赋初值,也可以只给其中
31、一部分元素赋初值。若给数组的全部元素赋初值,数组定义中的其中一部分元素赋初值。若给数组的全部元素赋初值,数组定义中的其中一部分元素赋初值。若给数组的全部元素赋初值,数组定义中的其中一部分元素赋初值。若给数组的全部元素赋初值,数组定义中的常量表达式就可以省略了,因为计算机会自动地计算数组元素的个数,常量表达式就可以省略了,因为计算机会自动地计算数组元素的个数,常量表达式就可以省略了,因为计算机会自动地计算数组元素的个数,常量表达式就可以省略了,因为计算机会自动地计算数组元素的个数,以确定数组的大小,再用常量表达式予以指定是不必要的。如果只给以确定数组的大小,再用常量表达式予以指定是不必要的。如果
32、只给以确定数组的大小,再用常量表达式予以指定是不必要的。如果只给以确定数组的大小,再用常量表达式予以指定是不必要的。如果只给一部分数组元素赋初始值的话,常量表达式就不能省略了。一部分数组元素赋初始值的话,常量表达式就不能省略了。一部分数组元素赋初始值的话,常量表达式就不能省略了。一部分数组元素赋初始值的话,常量表达式就不能省略了。上一页 下一页返回任务任务2 结构数据类型结构数据类型下面举例说明怎样给一部分数组元素赋初值下面举例说明怎样给一部分数组元素赋初值下面举例说明怎样给一部分数组元素赋初值下面举例说明怎样给一部分数组元素赋初值:int a int a 10 10=21,42,31,64,
33、53;=21,42,31,64,53;这条语句定义了一个整型的数组这条语句定义了一个整型的数组这条语句定义了一个整型的数组这条语句定义了一个整型的数组a a,然后给前面,然后给前面,然后给前面,然后给前面5 5个数组元素分别赋个数组元素分别赋个数组元素分别赋个数组元素分别赋值为值为值为值为21,42,31,64,53.21,42,31,64,53.语句语句语句语句:int a=21,42,31,64,53;:int a=21,42,31,64,53;省略厂数组定义中的常量表达式,由花括号中的元素个数确定它是省略厂数组定义中的常量表达式,由花括号中的元素个数确定它是省略厂数组定义中的常量表达式,
34、由花括号中的元素个数确定它是省略厂数组定义中的常量表达式,由花括号中的元素个数确定它是一个含一个含一个含一个含5 5个元素的数组,并且个元素的数组,并且个元素的数组,并且个元素的数组,并且a0=21,a1=42,a2=31,a3=64,a4=53a0=21,a1=42,a2=31,a3=64,a4=53。上一页 下一页返回任务任务2 结构数据类型结构数据类型2.2.二维数组二维数组二维数组二维数组定义二维数组的一般格式为定义二维数组的一般格式为定义二维数组的一般格式为定义二维数组的一般格式为:mn;mn;怎样理解二维数组呢怎样理解二维数组呢怎样理解二维数组呢怎样理解二维数组呢?比如语句比如语句
35、比如语句比如语句:float 22;:float 22;定义厂一个二维数组,可以把一个二维数组看作一个其元素为一维定义厂一个二维数组,可以把一个二维数组看作一个其元素为一维定义厂一个二维数组,可以把一个二维数组看作一个其元素为一维定义厂一个二维数组,可以把一个二维数组看作一个其元素为一维数组的一维数组。如数组的一维数组。如数组的一维数组。如数组的一维数组。如图图图图2-12-1所示,可把数组所示,可把数组所示,可把数组所示,可把数组a a看作由看作由看作由看作由a0a0和和和和a1a1组成的一组成的一组成的一组成的一维数组,这两个元素又是分别包含两个元素的一维数组。维数组,这两个元素又是分别包
36、含两个元素的一维数组。维数组,这两个元素又是分别包含两个元素的一维数组。维数组,这两个元素又是分别包含两个元素的一维数组。有必要弄清楚二维数组在计算机中存储的顺序。在有必要弄清楚二维数组在计算机中存储的顺序。在有必要弄清楚二维数组在计算机中存储的顺序。在有必要弄清楚二维数组在计算机中存储的顺序。在C+C+中是按行的顺中是按行的顺中是按行的顺中是按行的顺序存储的,所谓以行的顺序存储,就是先存储第一行,接着存储第二序存储的,所谓以行的顺序存储,就是先存储第一行,接着存储第二序存储的,所谓以行的顺序存储,就是先存储第一行,接着存储第二序存储的,所谓以行的顺序存储,就是先存储第一行,接着存储第二行,依
37、次类推。行,依次类推。行,依次类推。行,依次类推。上一页 下一页返回任务任务2 结构数据类型结构数据类型例如例如例如例如:int a23:int a23,其存储的顺序如,其存储的顺序如,其存储的顺序如,其存储的顺序如图图图图2-22-2所示所示所示所示.、上面已经学习厂使用上面已经学习厂使用上面已经学习厂使用上面已经学习厂使用一维数组的方法,即一维数组的方法,即一维数组的方法,即一维数组的方法,即 下标下标下标下标。显然,对于二维的数组,。显然,对于二维的数组,。显然,对于二维的数组,。显然,对于二维的数组,要有两个相应的下标才能表示一个数组元素,这就像在二维坐标平面要有两个相应的下标才能表示
38、一个数组元素,这就像在二维坐标平面要有两个相应的下标才能表示一个数组元素,这就像在二维坐标平面要有两个相应的下标才能表示一个数组元素,这就像在二维坐标平面中要有相应的两个数才能确定一个点,这里的二维数组元素相当于平中要有相应的两个数才能确定一个点,这里的二维数组元素相当于平中要有相应的两个数才能确定一个点,这里的二维数组元素相当于平中要有相应的两个数才能确定一个点,这里的二维数组元素相当于平面上的一个点。上面定义的二维数组的面上的一个点。上面定义的二维数组的面上的一个点。上面定义的二维数组的面上的一个点。上面定义的二维数组的6 6个元素分别为个元素分别为个元素分别为个元素分别为:a00,a01
39、,a02,a10,a11,a12.:a00,a01,a02,a10,a11,a12.二维数组的元素的表示形二维数组的元素的表示形二维数组的元素的表示形二维数组的元素的表示形式为式为式为式为:;2;上一页 下一页返回任务任务2 结构数据类型结构数据类型 两个下标的取值范围都是从两个下标的取值范围都是从两个下标的取值范围都是从两个下标的取值范围都是从0 0开始,而不是从开始,而不是从开始,而不是从开始,而不是从1 1开始的。数组中的元素开始的。数组中的元素开始的。数组中的元素开始的。数组中的元素和普通变量的性质是一样的。和普通变量的性质是一样的。和普通变量的性质是一样的。和普通变量的性质是一样的。
40、例如例如例如例如:int x34:int x34定义定义定义定义l l了一个了一个了一个了一个3 3行行行行4 4列的整数数组。列的整数数组。列的整数数组。列的整数数组。float data 2516 float data 2516 定义了一个定义了一个定义了一个定义了一个2525行行行行1616列的实数数组。列的实数数组。列的实数数组。列的实数数组。上一页 下一页返回任务任务2 结构数据类型结构数据类型 和一维数组一样,二维数组也可以在定义的时候进行初始化,且方法和一维数组一样,二维数组也可以在定义的时候进行初始化,且方法和一维数组一样,二维数组也可以在定义的时候进行初始化,且方法和一维数组
41、一样,二维数组也可以在定义的时候进行初始化,且方法基本是类似的,举例说明如下基本是类似的,举例说明如下基本是类似的,举例说明如下基本是类似的,举例说明如下:int a 22=1,2 int a 22=1,2,3,4;3,4;int a 22=1,2,3,4;int a 22=1,2,3,4;上面两句的功能是一致的,但显然第一句要清楚些上面两句的功能是一致的,但显然第一句要清楚些上面两句的功能是一致的,但显然第一句要清楚些上面两句的功能是一致的,但显然第一句要清楚些;且如果要对一部且如果要对一部且如果要对一部且如果要对一部分元素赋值,则必须用第一种方法分元素赋值,则必须用第一种方法分元素赋值,则
42、必须用第一种方法分元素赋值,则必须用第一种方法:int a22=1 int a22=1,2,3;2,3;如果对全部元素赋初值,一维数组能根据赋的初值的个数自动计数如果对全部元素赋初值,一维数组能根据赋的初值的个数自动计数如果对全部元素赋初值,一维数组能根据赋的初值的个数自动计数如果对全部元素赋初值,一维数组能根据赋的初值的个数自动计数以确定数组的大小,所以定义的时候可以不指定第一维的大小,但第以确定数组的大小,所以定义的时候可以不指定第一维的大小,但第以确定数组的大小,所以定义的时候可以不指定第一维的大小,但第以确定数组的大小,所以定义的时候可以不指定第一维的大小,但第二维的大小是不可以省略的
43、。二维的大小是不可以省略的。二维的大小是不可以省略的。二维的大小是不可以省略的。int a 2=21,32,53,48,17,26int a 2=21,32,53,48,17,26定义了一个定义了一个定义了一个定义了一个3 3行行行行2 2列的数组。列的数组。列的数组。列的数组。上一页 下一页返回任务任务2 结构数据类型结构数据类型【例例例例2-12-1】定义一个定义一个定义一个定义一个2626行行行行1818列的二维实数数组列的二维实数数组列的二维实数数组列的二维实数数组设数组名为设数组名为设数组名为设数组名为x x,由于数组类型为实型,数组定义如下,由于数组类型为实型,数组定义如下,由于数
44、组类型为实型,数组定义如下,由于数组类型为实型,数组定义如下:float x2618.float x2618.3.3.字符数组字符数组字符数组字符数组 字符数组就是一个字符类型的数组,其中每一个元素存放一个字符。字符数组就是一个字符类型的数组,其中每一个元素存放一个字符。字符数组就是一个字符类型的数组,其中每一个元素存放一个字符。字符数组就是一个字符类型的数组,其中每一个元素存放一个字符。字符数组也称字符串字符数组也称字符串字符数组也称字符串字符数组也称字符串.char c8char c8是一个是一个是一个是一个8 8个字符的数组个字符的数组个字符的数组个字符的数组.上一页 下一页返回任务任务
45、2 结构数据类型结构数据类型【例例例例2 2一一一一2 2】定义一个定义一个定义一个定义一个256256个字符的数组个字符的数组个字符的数组个字符的数组设字符数组的名为设字符数组的名为设字符数组的名为设字符数组的名为a a,字符数组定义为,字符数组定义为,字符数组定义为,字符数组定义为:char a256;:char a256;也可以给一个字符数组赋初值也可以给一个字符数组赋初值也可以给一个字符数组赋初值也可以给一个字符数组赋初值:char a=Hey,I am C+;char a=Hey,I am C+;“Hey,I am C+“Hey,I am C+共有共有共有共有1212个字符,因为个字
46、符,因为个字符,因为个字符,因为I am CI am C之间有之间有之间有之间有2 2个空格。那么该个空格。那么该个空格。那么该个空格。那么该数组的长度是多少呢数组的长度是多少呢数组的长度是多少呢数组的长度是多少呢?不是不是不是不是1212,而是,而是,而是,而是1313,因为字符串常量的最后由系,因为字符串常量的最后由系,因为字符串常量的最后由系,因为字符串常量的最后由系统加上厂一个统加上厂一个统加上厂一个统加上厂一个 00字符,表示字符串的结束字符,表示字符串的结束字符,表示字符串的结束字符,表示字符串的结束 字符数组的最后一个元字符数组的最后一个元字符数组的最后一个元字符数组的最后一个元
47、素一定是素一定是素一定是素一定是 00,这是,这是,这是,这是C+C+规定的。如一个规定的。如一个规定的。如一个规定的。如一个2525个元素的字符数组,只个元素的字符数组,只个元素的字符数组,只个元素的字符数组,只能存放能存放能存放能存放2424个字符。个字符。个字符。个字符。上一页 下一页返回任务任务2 结构数据类型结构数据类型 使用字符数组的元素有两种方法。使用字符数组的元素有两种方法。使用字符数组的元素有两种方法。使用字符数组的元素有两种方法。(1)(1)每次引用字符数组的一个元素,得到一个字符。每次引用字符数组的一个元素,得到一个字符。每次引用字符数组的一个元素,得到一个字符。每次引用
48、字符数组的一个元素,得到一个字符。(2)(2)可以把字符数组作为整体进行输人和输出,在系统定义的字符串可以把字符数组作为整体进行输人和输出,在系统定义的字符串可以把字符数组作为整体进行输人和输出,在系统定义的字符串可以把字符数组作为整体进行输人和输出,在系统定义的字符串的处理函数中,是把字符数组当作一个整体来处理的。的处理函数中,是把字符数组当作一个整体来处理的。的处理函数中,是把字符数组当作一个整体来处理的。的处理函数中,是把字符数组当作一个整体来处理的。如如如如:char a=“boy”:char a=“boy”用输出语句输出这个字符数组用输出语句输出这个字符数组用输出语句输出这个字符数组
49、用输出语句输出这个字符数组:couta;:couta;:cin a;输人输人输人输人girlgirl后,数组的状态如后,数组的状态如后,数组的状态如后,数组的状态如图图图图2-32-3所示所示所示所示.上一页 下一页返回任务任务2 结构数据类型结构数据类型 下面简单介绍一些常用的下面简单介绍一些常用的下面简单介绍一些常用的下面简单介绍一些常用的C+C+的字符串处理函数。的字符串处理函数。的字符串处理函数。的字符串处理函数。1.strcat(1.strcat(字符数组字符数组字符数组字符数组1 1,字符数组,字符数组,字符数组,字符数组2)2)实现将两个字符数组中的字符串连接起来。把字符串实现将
50、两个字符数组中的字符串连接起来。把字符串实现将两个字符数组中的字符串连接起来。把字符串实现将两个字符数组中的字符串连接起来。把字符串2 2接到字符串接到字符串接到字符串接到字符串1 1的后面,并将结果存放到字符串的后面,并将结果存放到字符串的后面,并将结果存放到字符串的后面,并将结果存放到字符串1 1中。中。中。中。【例例例例2 2一一一一3 3】strcat strcat示例及图示示例及图示示例及图示示例及图示#include#include#include#include void main()void main()char a16=“boy”;char a16=“boy”;char b=