数据类型的扩展_第1页
数据类型的扩展_第2页
数据类型的扩展_第3页
数据类型的扩展_第4页
数据类型的扩展_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、756-23 54107 a0 a1 a2 an-1图图5.1 一维数组一维数组51 数组数组5.1.1 数组的概念数组的概念数组是一些意义上相关的同类型变量的有序集合数组是一些意义上相关的同类型变量的有序集合。每个数组元素都是一个每个数组元素都是一个变量变量,用来存放不同的值,用来存放不同的值。数组元素引用形式:数组元素引用形式: 数组名数组名 下标下标如果一个数组的元素本身又是一些相同类型、相如果一个数组的元素本身又是一些相同类型、相同长度的一维数组,就称它为二维数组。同长度的一维数组,就称它为二维数组。二维数组元素引用形式:二维数组元素引用形式: 数组名数组名 行下标行下标 列下标列下标

2、 例如,一个例如,一个2行行4列的列的float型数组型数组b如图如图5.2所示的矩阵:所示的矩阵: b10 b11 b12 b13b00 b01 b02 b03934467.4906.5531.2754.45877456.94.6图5.2 二维数组 5.1.2 数组的定义、初始化和赋值数组的定义、初始化和赋值1数组的定义数组的定义数组和其它类型的变量一样,必须先定义、后使用数组和其它类型的变量一样,必须先定义、后使用。数组的定义使用如下格式的声明语句:数组的定义使用如下格式的声明语句: 类型类型 数组名数组名 大小大小1 大小大小2 大小大小n例如:例如: char a6 ;float b1

3、020 ; double c10510 ; 数组的实例化:数组的实例化:例如,设有定义 double sum50 ; float score504 ; sum0 sum1 sum49score00 score03score10 score13 score20score493(a) 一维数组的存储形式图5.3 数组在内存的存储形式(b) 二维数组的存储形式例如,编例如,编译器将为译器将为sum分配分配一 片一 片 4 0 0个字节的个字节的连续区域。连续区域。2数组元素的初始化数组元素的初始化数组元素的初始化使用一对花括号给出的一个初始值表。数组元素的初始化使用一对花括号给出的一个初始值表。例如

4、,一维数组的初始化如下:int age10 = 34 , 45 , 64 , 56 , 45 , 76 , 32 , 57 , 42 , 66 ; 在初始化数组时,可以只给一部分元素设置初始值可以只给一部分元素设置初始值,其余没有被初始化的元素值为默认值或不确定。C+中整型数据的默认值为零。例如: int month12 = 4 , 6 , 8 , 3 ; 前四个元素前四个元素month0、month1、month2、month3分别初始化为分别初始化为4、6、8、3,其余的,其余的month4month11值为零。值为零。二维数组的初始化如下例:int w34 = 4 , 2 , 7 , 5

5、 , 3 , 8 , 6 , 8 , 5 , 8 , 2 , 3 ; 也可以使用简化形式: int w34 = 4 , 2 , 7 , 5 , 3 , 8 , 6 , 8 , 5 , 8 , 2 , 3 ; 又如: int p32 = 1 , 2 , 3 , 4 ; 将使p00值为1,p01值为2,p10值为3,p11值为4,p20和p21没有被初始化,则值为0。三维数组的初始化按类似方法处理。 如果在初始化时提供了数组所有元素的初始值,则数组的第1维的大小可以省略。这时,编译器将根据实际情况确定第1维的大小。例如: int day = 23 , 14 , 5, 18 , 29 ; 编译器将确

6、定一维数组day的长度为5。又如: float total 3 = 1 , 2 , 3 , 4 , 5 , 6 ; 此二维数组的第1维大小将由编译器确定为2。3数组的赋值数组的赋值数组元素被初始化后,将保留其初始值直到被重新赋值数组元素被初始化后,将保留其初始值直到被重新赋值为止。为止。给数组赋值,实际上是给数组的各元素赋值。因此不能给数组赋值,实际上是给数组的各元素赋值。因此不能这样:这样: float a10 ; a = 56.3 ; /非法非法也不能再使用初始值表。如:也不能再使用初始值表。如: float a10 ; a = 56.3 , 8.2 , -100.98, ; /非法非法应

7、该使用赋值语句对数组元素一个一个地进行赋值:应该使用赋值语句对数组元素一个一个地进行赋值: float a10 ; a0 = 56.3 ; a1 = 8.2 ; 例5.1 计算某学生四门课程的平均成绩。 # include void main( ) float score4 ; /用数组score来存放成绩 float average ; cout score0 score1 score2 score3 ; average = ( score0 + score1 + score2 + score3 ) / 4 ; cout The average is : average endl ; 在执行

8、例5.1时,输入的四个成绩之间用空格或回车符隔开。例如: Please enter four float numbers : 85 67 72 78则输出为:则输出为: The average is : 75.5通常使用循环语句来对数组元素进行挨个赋值,通常使用循环语句来对数组元素进行挨个赋值, 假定有如下的数组假定有如下的数组声明:声明: const int size = 50 ; int asize , bsize ; 若要将数组若要将数组a的所有元素都赋为相同值(比如的所有元素都赋为相同值(比如0),可以这样:),可以这样: for ( int i = 0 ; i = size - 1

9、; i+ ) ai = 0 ; 要从键盘输入数组要从键盘输入数组a的所有元素值,可以这样:的所有元素值,可以这样: for ( int i = 0 ; i = size - 1 ; i+ ) cout a i ai ; 要打印数组要打印数组a的所有元素值:的所有元素值: for ( int i = 0 ; i = size - 1 ; i+ ) cout a i = ai endl ; 两个同类型、同维,各维的大小也都一样的数组可以互相两个同类型、同维,各维的大小也都一样的数组可以互相赋值。两个数组之间赋值不能直接进行,而应该将对应位置赋值。两个数组之间赋值不能直接进行,而应该将对应位置上的元

10、素一一赋值。上的元素一一赋值。例如,不能进行如下的赋值:例如,不能进行如下的赋值: int a5 = 1 , 2 , 3 , 4 , 5 ; int b5 ; b = a ; /非法非法正确的作法应该是将正确的作法应该是将a0赋给赋给b0,a4赋给赋给b4。在实。在实际编程中,一般采用循环语句来完成这一过程。要将数组际编程中,一般采用循环语句来完成这一过程。要将数组a复复制到数组制到数组b,可以这样:,可以这样: for ( int i = 0 ; i = size - 1 ; i+ )bi = ai ; 例5.2 用一个数组来存放某班50个学生的外语考试成绩,求出其中的最高分。 # incl

11、ude void main( ) const size = 50 ; /数组长度 float marksize , max ; int i ; for ( i = 0 ; i = size - 1 ; i+ ) cout mark i marki ; max = mark0 ; for ( i = 1 ; i = size - 1 ; i+ ) /求最高分 if ( max marki ) max = marki ; cout max endl ; 5.1.3 一维数组与字符串变量一维数组与字符串变量字符数组是指元素为字符数组是指元素为char型的数组。例如:型的数组。例如: char a5

12、= t , h , e , r , e ; 或者或者 char a = t , h , e , r , e ; 则则a0值为值为t,a1值为值为h,a2值为值为e,a3值为值为r,a4值为值为e。 C+中,字符串变量就是以中,字符串变量就是以0结尾的一维字符数组。一个长度为结尾的一维字符数组。一个长度为n的的字符串在实际存储时要占用字符串在实际存储时要占用n+1个字节个字节(0要占用一个字节要占用一个字节)。例如,存储字符串“Thank you.”的字符串变量ty可以进行如下的声明和初始化:char ty11 = T , h , a , n , k , , y , o , u , . , 0

13、; 在这个语句中,在这个语句中,Thank you.长度为长度为10,但,但ty应定义为至少应定义为至少11个元素,否个元素,否则则0将超出为字符串定义的存储空间的边界,产生无法预料的结果。或者将超出为字符串定义的存储空间的边界,产生无法预料的结果。或者干脆在数组定义时省略长度:干脆在数组定义时省略长度: char ty = T , h , a , n , k , , y , o , u , . , 0 ; 由编译器根据实际情况决定数组的长度。由编译器根据实际情况决定数组的长度。 在初始化一个字符串变量时,在初始化一个字符串变量时,C+还允许如下的简捷形式:还允许如下的简捷形式: char t

14、y = Thank you. ; 则则ty的长度将由编译器确定为的长度将由编译器确定为11。这种初始化字符串的方式简便。这种初始化字符串的方式简便、安全。、安全。字符串变量与一般的数组不同的是,它可以使用运算字符串变量与一般的数组不同的是,它可以使用运算符符“”,作为一个整体来进行输入、输出。,作为一个整体来进行输入、输出。例例54 字符串变量的输出。字符串变量的输出。 # include void main( ) char string = There are eight students in the classroom. ; cout string endl ; 程序输出: There

15、are eight students in the classroom.例55 字符串变量的输入和输出。 # include void main( ) char string50 ; / 定义足够的长度 cout Please enter a string which has no more than 49 chars : string ; cout The string is : string endl ; 在输入字符串时,系统将跳过前导空格来接收字符,而且在输入途中,一遇到空格就算是输入结束。例如,例5.5运行后,屏幕出现提示: Please enter a string which ha

16、s no more than 49 chars : 此时若输入: There are eight students in the classroom. 程序的输出将是: The string is : There 系统会将There与is之间的空格算作字符串输入结束的标志。值得注意的是,字符串变量除了可以以整体的值得注意的是,字符串变量除了可以以整体的形式进行形式进行I/0操作和初始化外,不能以整体形式进操作和初始化外,不能以整体形式进行赋值、比较、连接等操作,同其它类型的数组行赋值、比较、连接等操作,同其它类型的数组一样,只能逐个元素进行这些操作。一样,只能逐个元素进行这些操作。不过,不过,

17、C+系统为方便用户使用,提供了一些系统为方便用户使用,提供了一些字符串方面的库函数,以完成对字符串的复制、字符串方面的库函数,以完成对字符串的复制、比较、连接、查找某个字符、求字符串的长度等比较、连接、查找某个字符、求字符串的长度等基本的字符串操作。这些库函数主要包含在基本的字符串操作。这些库函数主要包含在string.h头文件中。要使用它们,应该在程序中头文件中。要使用它们,应该在程序中加上:加上: # include 常用的字符串函数:常用的字符串函数: char* strcatt(char* str1,const char* str2) ; char* strcpy(char* str1

18、,const char* str2) ; int strcmp(const char*str1,const char* str2) ; unsigned int strlen(const char* str) ; char* strchr(const char* str,int ch) ; char* strstr(const char*str1,const char* str2) ; 5.1.4 多维数组与字符串数组多维数组与字符串数组一维字符数组可用来存放一个字符串,二维字符数组可用一维字符数组可用来存放一个字符串,二维字符数组可用来存放一组字符串,因此二维字符数组可称为(一维)字符来存放

19、一组字符串,因此二维字符数组可称为(一维)字符串串数组。数组。例如,要存放某班级共例如,要存放某班级共50名学生的姓名,可使用一个二维字符数组。名学生的姓名,可使用一个二维字符数组。 char name5020 = LiXiaoHe , WangQiang , ShiHua , LiuLi ; name0 name1 name2 name3 :name4901123456798 191L1iXiaoHe 0111W1angQian0g111S1hiHua0 111L1i uLi0 111 1 111 1 111 图5.4字符串数组 例例5.3 输入某班输入某班50个学生的姓名和五门功课的考试成

20、绩,计算每人的平均分并打个学生的姓名和五门功课的考试成绩,计算每人的平均分并打印出来(打印内容包括姓名、平均分)。印出来(打印内容包括姓名、平均分)。 # include void main( ) const size = 50 ; char namesize20 ; /存放姓名存放姓名 float marksize5 ; /存放五门课成绩存放五门课成绩 float sum ; float averagesize ; /存放平均分存放平均分 for ( int i = 0 ; i = size 1 ; i+ ) cout No. i + 1 namei ; sum = 0 ; for ( in

21、t j = 0 ; j markij ; sum = sum + markij ; averagei = sum/5 ; cout endl ; for ( int k = 0 ; k = size 1 ; k+ ) cout namek : averagek endl ; 用循环语句来处理二用循环语句来处理二维数组应该用双重循维数组应该用双重循环。利用二维数组行、环。利用二维数组行、列下标的变化,作为列下标的变化,作为外、内循环的控制变外、内循环的控制变量。量。 5.1.5 指针与数组指针与数组 C+中,指针与数组有着密切的关中,指针与数组有着密切的关系。数组名本身就是一个指针系。数组名本身

22、就是一个指针(指针常指针常量量),对数组元素的引用既可采用下标,对数组元素的引用既可采用下标形式,又可采用指针形式。反过来,指形式,又可采用指针形式。反过来,指针也可当作数组来使用。针也可当作数组来使用。 如果有如果有 int a10 = 3 , 56 , 287 , 78 , 43 , 65 , 4 , 37 , 85 , 1276 ; 定义并初始化了一个一维数组定义并初始化了一个一维数组a,它的,它的10个元素用下标形式个元素用下标形式来表示分别为:来表示分别为: a0,a1,a2,a9若使用指针形式来表示若使用指针形式来表示a的元素时,的元素时,a可当作一个可当作一个int型的指针型的指

23、针变量,存放着数组的首地址。则变量,存放着数组的首地址。则a的元素可分别表示为:的元素可分别表示为:*(a+0)或或*a,*(a+1),*(a+2),*(a+9)这样,若要将这样,若要将a4赋值为赋值为-59,既可用语句,既可用语句 a4 = -59 ; 又可用又可用 *(a+4) = -59 ; 二者效果相同二者效果相同在C+中,任一个数组的名字都可作为一个常量指针来使用。所谓常量指针,就是说它虽然是一个指针,但它的值不能被改变。数组名作为一个常量指针,存放的是这个数组在内存中所占区域的起始地址,也即第一个元素的地址。这样,数组中所有元素皆可使用指针形式来表示。设数组名为a,其元素ai可用指

24、针形式表示为: *(a+i)a a+1: a+i:a 0 a1 : ai :图5.5 一维数组元素的指针表示例例56 分别用下标形式和指针形式来输出数组元素的值分别用下标形式和指针形式来输出数组元素的值# include void main() int a5 = 1 , 2 , 3 , 4 , 5 ; cout a0 a1 a2 a3 a4 endl ; cout a= a endl ; cout *a *(a+1) *(a+2) *(a+3) *(a+4) endl ;程序的输出为:程序的输出为: 12345 a= 0 x0065FDE4 12345 二维数组用指针形式表示的方法与一维数组类

25、似。假设有二维数组用指针形式表示的方法与一维数组类似。假设有 int a34 ; a0a1a2 a的三个行元素可用指针形式表示为:的三个行元素可用指针形式表示为: *(a+0),*(a+1) ,*(a+2)以第一个行元素以第一个行元素*(a+0)为例,其包含的四个元素又可以分别表示如下:为例,其包含的四个元素又可以分别表示如下: *(*(a+0)+0),*(*(a+0)+1),*(*(a+0)+2) ,*(*(a+0)+3) 也可以只将行、列下标中的一个用指针形式表示,另一个用下标也可以只将行、列下标中的一个用指针形式表示,另一个用下标形式表示。例如,二维数组元素形式表示。例如,二维数组元素a

26、ij也可以用如下形式表示:也可以用如下形式表示: *(ai+j)或者或者 (*(a+i)j 常量指针的值是不能改变的,以任何形式对它进行赋值或修改都是不允常量指针的值是不能改变的,以任何形式对它进行赋值或修改都是不允许的。例如:许的。例如: float total4 = 3.56 , -45.52 , 90 , 127.39 ; float x , y ; x = *total ; total = total + 1 ; /非法非法 y = *total ;这时可以用一个变量指针来代替常量指针,让它指向该数组,而它的值这时可以用一个变量指针来代替常量指针,让它指向该数组,而它的值是可以被修改的

27、:是可以被修改的: float *p = total ; /将将p初始化为指向数组初始化为指向数组total x = *p ; p = p + 1 ; /合法合法 y = *p ; 指针也可以直接当成数组来用:例例5.7: 当作数组来使用的指针当作数组来使用的指针# include void main( ) int x3 = 4 , 5 , 6 ; int *p = x ; /让指针让指针p指向数组指向数组x cout x0 x1 x2; cout p0 p1 p2 endl ; 程序的输出为:程序的输出为: 4 5 6 4 5 6例例5.8 指向字符串变量指向字符串变量(一维字符数组一维字符

28、数组)的字符型指针。的字符型指针。 # include void main() char str1 = Whats that? ; char str2 = Its a book. ; char *ptr ; cout str1 endl ; cout str2 endl ; ptr = str1 ; / 让让ptr指向指向str1 cout ptr endl ; ptr = str2 ; / 让让ptr指向指向str2 cout ptr endl ; 程序的输出是:程序的输出是: Whats that? Its a book. Whats that? Its a book. 下面是一个定义指针

29、数组的语句举例:下面是一个定义指针数组的语句举例: double *cost10 ; 这个语句声明了一个含有这个语句声明了一个含有10个元素的一维数组个元素的一维数组cost。 cost的每一个元素的每一个元素 cost0、cost1、cost9 都是一个都是一个double型的指针,可以指向任何一个型的指针,可以指向任何一个double型的数据。型的数据。如果一个数组的元素都是某种相同类型的指针,那么这如果一个数组的元素都是某种相同类型的指针,那么这个数组就称为指针数组。个数组就称为指针数组。 使用指针数组会带来很大的方便。一个典型的例子是字符串数组的处理。使用指针数组会带来很大的方便。一个

30、典型的例子是字符串数组的处理。 char *name150 = LiXiaoHe , WangQiang , ShiHua , LiuLi ; name1在内存中的存储如图在内存中的存储如图5.7所示。所示。图5.7 指向字符串的指针数组的存储方式name10 name11 name12 name13LiXiaoHe00WangQiangShiHua0LiuLi0 C+ C+程序运行时可以在内存自由程序运行时可以在内存自由区(堆)使用区(堆)使用newnew运算符和运算符和deletedelete运运算符动态创建和删除变量。动态变算符动态创建和删除变量。动态变量用指针访问。量用指针访问。 如果

31、创建的是一个普通变量,初始化过程可以用初值为变量赋值。如果创建的是一个数组,则只是为该数组分配存储空间。new运算符的功能是动态分配内存,运算符的功能是动态分配内存,返回一个指向新分配内存首地址的指针,返回一个指向新分配内存首地址的指针,其格式为:其格式为:new 类型类型 ();/创建变量。创建变量。new 类型类型 ;/创建数组。创建数组。若变量创建成功,若变量创建成功,new运算符返回一个运算符返回一个指向新创建变量的指针,程序中可以通过指向新创建变量的指针,程序中可以通过该指针对变量进行访问。如果创建失败,该指针对变量进行访问。如果创建失败,则返回空指针(则返回空指针(NULL)。)。

32、例如例如, 用用new运算符创建变量:运算符创建变量:int* ptr; ptr=new int(100);或:或: ptr=new int;*ptr=100;又如,用又如,用new运算符创建数组:运算符创建数组: char* name; name = new char10 ;/ 创建创建char型数组型数组以上两句可以合并成:以上两句可以合并成:char* name = new char10 ; 删除用new创建的数组的格式为: delete 指针名;指针名;例如: char *cPtr ;cPtr = new char20 ;delete cPtr ;删除用删除用new创建的变量语创建的变

33、量语法格式为:法格式为:delete 指针名;指针名;例如:例如:double *dPtr ;dPtr = new double(7.14) ;delete dPtr ;delete运算符的功能是用来删除使用new创建的变量或数组的指针。52 结构类型结构类型5.2.1结构的定义和访问结构的定义和访问结构是结构是C+为了为了C语言向后兼容而保留的一种数据类型。语言向后兼容而保留的一种数据类型。与数组只能定义同类型数据集合不同,结构可以定义一组意义相关、与数组只能定义同类型数据集合不同,结构可以定义一组意义相关、类型不同的数据的集合。结构定义关键字是类型不同的数据的集合。结构定义关键字是stru

34、ct。结构定义格式:结构定义格式:struct 结构名结构名 类型类型1 结构成员结构成员1;类型类型2 结构成员结构成员2;;例如:例如:struct Teacherlong int id; /char name10int age;int sex; 结构是一个形体结构是一个形体,它定义了一个纪录格式。,它定义了一个纪录格式。 结构定义结构定义后,可以声明结构变量或指向结构的指针,如:后,可以声明结构变量或指向结构的指针,如:Teacher Chen;Teacher *tp;tp=new Teacher; 结构变量是实体结构变量是实体声明结构变量即为该结构的纪录实体分配内存。声明结构变量即为该

35、结构的纪录实体分配内存。struct Teacherlong int id; char name10int age;int sex;Teacher Chen, *tp; 结构成员用成员访问运算符结构成员用成员访问运算符“”或或“-”进行访问进行访问,如如:Chen.id=1308633;tp-age=24;strcpy( C, “Chenkun”);coutname“,”ageendl;也可以在定义结构类型的同时也可以在定义结构类型的同时定义结构变量。例如:定义结构变量。例如:struct Teacherlong int id; char name10int age;int s

36、ex;Chen, *tp; 5.2.2 结构与链表结构与链表结构定义可以嵌套,即一个结构中的成员可以是另一个结构,如:struct Addresschar city12; char street20; char phone_No8;struct Teacherlong int id; /char name10int age;int sex;Address home; /结构的嵌套; 访问嵌套的结构成员,应逐层使用访问运算符,如:Teacher Wang;Strcpy(Wang.home.city, “Beijing”); 注意:结构不能以自身的变量作为成员。如:注意:结构不能以自身的变量作为成

37、员。如:struct TeacherAddress home; /合法嵌套合法嵌套 Teacher Zhang; /非法;非法;Teacher *Wang; /合法;合法;;但是,结构可以用指向自身的指针作为成员。如:但是,结构可以用指向自身的指针作为成员。如: struct listchar name10 list *link;指向自身的指针,是链表定义的基础。指向自身的指针,是链表定义的基础。例例59 链表结构链表结构# include struct Teacherlong id;int age;Teacher* next; void main() Teacher* head=NULL;T

38、eacher* p;Teacher* pEnd; p=new Teacher; cinp-idp-age;pEnd=p;while(p-id !=0)if (head=NULL) head=p;else pEnd-next=p;pEnd=p;p=new Teacher;cin p-id p-age;pEnd-next=NULL;cout The Teacher list you input are: endl;while(head!=NULL)coutid-agenext;程序运行时,由键盘输入一程序运行时,由键盘输入一组数据:组数据:10001 5410002 4610003 3720001

39、 3420002 260 0 /输入结束标志输入结束标志程序接着输出:程序接着输出:The Teacher list you input are:10001-5410002-4610003-3720001-3420002-26idage*next0*head 例例59 链表结构链表结构# include struct Teacherlong id;int age;Teacher* next; void main() Teacher* head=NULL;Teacher* p;Teacher* pEnd; p=new Teacher; cinp-idp-age;pEnd=p;while(p-id

40、 !=0)if (head=NULL) head=p;else pEnd-next=p;pEnd=p;p=new Teacher;cinp-idp-age;pEnd-next=NULL;cout The Teacher list you input are: endl;while(head!=NULL)coutid-agenext;程序运行时,由键盘输入一组数据:程序运行时,由键盘输入一组数据:10001 3412004 4423187 2523456 600 0 /输入结束标志输入结束标志程序接着输出:程序接着输出:The Teacher list you input are:0 x0079

41、0D20 10001-34 0 x00790CE00 x00790CE0 12004-44 0 x00790CA00 x00790CA0 23187-25 0 x00790C600 x00790C60 23456-60 0 x00000000couthead id-age nextendl;0 x00790D20 10001 34 0 x00790CE00 x00790CE0 12004 44 0 x00790CA00 x00790CA0 23187 25 0 x00790C600 x00790C60 2345660 0 x00000000 53 枚举类型枚举类型枚举类型是一个符号常量集合定义

42、。枚举类型使得客观世界中的许多概念能够直观地在程序中表示。引入枚举类型的主要目的是增加程序的可读性。枚举类型和结构类型都是用户定义类型,一经定义,就可以象基本数据类型一样在程序中使用。 5.3.1 枚举的定义枚举的定义枚举类型和枚举变量的定义格式如下,其中枚举类型和枚举变量的定义格式如下,其中enum是枚举类型定义的关是枚举类型定义的关键字。键字。enum 枚举类型名枚举类型名 枚举常量名枚举常量名1;枚举常量名枚举常量名2;;枚举变量枚举变量; /在定义枚举类型的同时定义枚举变量。在定义枚举类型的同时定义枚举变量。例如:enum WeekDaySunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday today; 也可在枚举类型定义后再定义枚举变量,格式如下:也可在枚举类型定义后再定义枚举变量,格式如下:枚举类型名枚举类型名 枚举变量。枚举变量。如:WeekDay tomorrow; 5.3.2 枚举常量枚举常量枚举常量又称枚举元素,必须是C+合法的标识符。枚举类型是一个有限集合,一个枚举关系到的元素必须全部列举在该集合中。枚举中的元素除了在意义上关联外,还应该存在某种确定的关系,如先后关系,大小关系等,以便在程序中对这些数据进行比较、查找。C+编译程序为每个枚举常量分配一个整型数值,该数值就是枚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论