C语言程序设计课程辅导二.doc

上传人:飞****2 文档编号:50971251 上传时间:2022-10-17 格式:DOC 页数:23 大小:116KB
返回 下载 相关 举报
C语言程序设计课程辅导二.doc_第1页
第1页 / 共23页
C语言程序设计课程辅导二.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《C语言程序设计课程辅导二.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课程辅导二.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C+语言程序设计课程辅导二-数组和字符串 一、数组的概念 在程序设计中存储单个数据时,需要根据数据的类型定义相应的变量来保存。如存储一个整数时需要定义一个整数变量来保存,存储一个实数时需要定义一个单精度或双精度变量来保存,存储含有多个成分的一个记录数据时,需要定义该类型的一个结构变量来保存。 若在程序设计中需要存储同一数据类型的、彼此相关的多个数据时,如存储数学上使用的一个数列或一个矩阵中的全部数据时,显然采用定义简单变量的方法是不行的,这就要求定义出能够同时存储多个值的变量,这种变量在程序设计中称为数组。 在实际应用中,一组相关的数据之间可能存在着一维关系,也可能存在着二维关系,等等。一个数

2、列中的数据若是一维关系,则它除第一个数据外,每个数据只有一个直接前驱;除最后一个数据外,每个数据只有一个直接后继。假定一个数列为(38,42,25,60),则每个数的后一个数就是它的直接后继,每一个数的前一个数就是它的直接前驱,如42的直接前驱为38,直接后继为25。一个矩阵中的数据若二维关系,则它除第一行和第一列上的所有数据外,每个数据在行和列的方向上各有一个直接前驱;除最后一行和最后一列上的所有数据外,每个数据在行和列的方向上各有一个直接后继。假定一个矩阵为: 2 6 9 12 8 4 7 3 5 1 6 8则每一个元素均处于相应行和列的交点位置上,虽然有的元素值相同,但由于所处的位置不同

3、,所以是不同的元素。 在程序设计中,用一维数组表示和存储一维相关的数据,用二维数组表示和存储二维相关的数据,用三维数组表示和存储三维相关的数据,等等。假定一个数列为a1,a2,.,an,则需要用一个一维数组来存储,假定仍用a作为数组名,则a中应至少包含有n个元素,每个元素用来存储数列中一个相应的数据。若a中正好包含有n个元素,则这n个元素依次表示为a0,a1,.,an-1,用a0存储数列中的第一个数据a1,用a1存储数列中的第二个数据a2,依次类推。假定一个矩阵为: a11 a12 . a1n a21 a22 . a2n M M . M am1 am2 . amn则需要用一个二维数组来存储,假

4、定二维数组名用b表示,则b中应至少包含mn个元素,也就是说,第一维尺寸至少为m,第二维尺寸至少为n,该数组b中的每个元素用来存储矩阵中的一个相应的数据。 二、数组的定义 2.1 一维数组 1. 定义格式 一维数组同简单变量一样,也是通过变量定义语句定义的。其定义格式为: =; 为已存在的一种数据类型,是用户定义的一个标识符,用它来表示一个数组,的值是一个整数,由它标明该数组的长度,即数组中所含元素的个数,每个元素具有所指定的类型,两边的中括号是语法所要求的符号,不是标明其内容为可选而使用的符号,是用逗号分开的一组表达式,每个表达式的值将被赋给数组中的相应元素。 当数组定义中包含有初始化选项时,

5、其可以被省略,此时所定义的数组的长度将是中所含的表达式的个数。 一个数组被定义后,系统将在内存中为它分配一块含有n个(n为数组长度)存储单元的存储空间,每个存储单元包含的字节数等于元素类型的长度。如对于一个含有10个int型元素的数组,它将对应10*4=40个字节的存储空间。 定义了一个数组,就相当于同时定义了它所含的每个元素。数组中的每个元素是通过下标运算符来指明和访问的,具体格式为:“”,这与数组的定义格式相同,但出现的位置是不同的,当出现在变量定义语句时则为数组定义,而当出现在表达式中时则为一个元素。 对于一个含有n个元素的数组,C+语言规定:它的下标依次为0,1,2,.,n-1,因此全

6、部n个元素依次为a0,a1,a2,.,an-1,其中假定a为数组名。 2. 格式举例 (1) int a20;(2) double bMS; /假定MS为已定义的整型常量 (3) int c5=1,2,3,4,0;(4) char d=a,b,c,d;(5) int e8=1,4,7;(6) char f10=B,A,S,I,C;(7) bool g2*N+1; /假定N为已定义的整型常量(8) float h15, h210;(9) short x=1, y=2, z, w4=25+x, -10, x+2*y, 44;(10) int p; 第一条语句定义了一个元素为int型、数组名为a、包

7、含20个元素的数组,所含元素依次为a0,a1,.,a19,每个元素同一个int型简单变量一样,占用4个字节的存储空间,用来存储一个整数,整个数组占用80个字节的存储空间,用来存储20个整数。 第二条语句定义了一个元素类型为double、数组长度为MS的数组b,该数组占用MS*8个字节的存储空间,能够用来存储MS个双精度数,数组b中的元素依次为b0,b1,.,bMS-1。 第三条语句定义了一个整型数组c,即元素类型为整型的数组c,它的长度为5,所含元素依次为c0,c1,c2,c3和c4,并相应被初始化为1,2,3,4和0。 第四条语句定义了一个字符数组d,由于没有显式地给出它的长度,所以隐含为初

8、值表中表达式的个数4,该数组的4个元素d0,d1,d2和d3依次被初始化为a,b,c,和d。注意若没有给出数组的初始化选项,则表示数组长度的常量表达式不能省略。 第五条语句定义了一个含有8个元素的整型数组e,它的初始化数据项的个数为3,小于数组中元素的个数8,这是允许的,这种情况的初始化过程为:将利用初始化表对前面相应元素进行初始化,而对后面剩余的元素则自动初始化为常数0。数组e中的8个元素被初始化后得到的结果为:e0=1, e1=4, e2=7, e3e7=0。 第六条语句定义了一个字符数组f,它包含有10个字符元素,其中前5个元素被初始化为初值表所给的相应值,后5个元素被初始化为字符0,对

9、应数值为0。 第七条语句定义了一个布尔型数组g,它的数组长度为2*N+1,每个元素没有被初始化。 第八条语句定义了两个单精度型一维数组h1和h2,它们的数组长度分别为5和10。在一条变量定义语句中,可以同时定义任意多个简单变量和数组,每两个相邻定义项之间必须用逗号分开。 第九条语句定义了三个短整型简单变量x,y和z,其中x和y被初始化为1和2,定义了一个短整型数组w,它包含有四个元素,其中w0被初始化为25+x的值,即26,w1被初始化为-10,w2被初始化为x+2*y的值,即5,w3被初始化为44。 第十条语句是错误的数组定义,因为它既省略了数组长度选项,又省略了初始化选项,使系统无法确定该

10、数组的大小,从而无法分配给它确定的存储空间。 3. 数组元素的访问 通过变量定义语句定义了一个数组后,用户便可以随时使用其中的任何元素。数组元素的使用是通过下标运算符指明和访问的,其中运算符左边为数组名,中间为下标。一个数组元素又称为下标变量,所使用的下标可以为常量,也可以为变量或表达式,但其值必须是整数,否则将产生编译错误。 假定an为一个已定义的数组,则下面都是访问该数组的下标变量的合法格式: (1) a5 /下标为一个常数 (2) ai /下标为一个变量 (3) aj+ /下标为后增1表达式 (4) a2*x+1 /下标为一般表达式 假定在上述每个变量的下标表达式中,所使用的变量i,j和

11、x的值分别为2,3和4,则ai对应的数组元素为a2,aj+对应的数组元素为a3,同时j的值被修改为4,a2*x+1对应的数组元素为a9。 使用一个下标变量同使用一个简单变量一样,可以对它赋值,也可以取出它的值。如: (1) int a5=0,1,2,3,8; /定义数组a并进行初始化 (2) a0=4; /把4赋给a0 (3) a1+=a0; /把a0的值4累加到a1,使a1的值变为5 (4) a3=3*a2+1; /把赋值号右边表达式的值7赋给a3 (5) coutaa0; /因a0=4,所以aa0对应的元素为a4, /该语句输出a4的值8 C+语言对数组元素的下标值不作任何检查,也就是说,

12、当下标值超出它的有效变化范围0n-1(假定n为数组长度)时,也不会给出任何出错信息。为了防止下标值越界(即小于0或大于n-1),则需要编程者对下标值进行有效性检查。如: (1) int a5; (2) for(int i=0; i5; i+) ai=i*i; (3) for(i=0; i5; i+) coutai ; 第一条语句定义了一个数组a,其长度为5,下标变化范围为04。第二条语句让循环变量i在数组a下标的有效范围内变化,使下标为i的元素赋值为i的平方值,该循环执行后数组元素a0,a1,a2,a3和a4的值依次为0,1,4,9和16。第三条语句控制输出数组a中每一个元素的值,输出语句中下

13、标变量ai中的下标i的值不会超出它的有效范围。如果在第三条语句中,用做循环判断条件的不是i5,而是i=5,则虽然a5不属于数组a的元素,但也同样会输出它的值,而从编程者角度来看是一种错误。由于C+系统不对元素的下标值进行有效性检查,所以用户必须通过程序检查,确保其下标值有效。 4. 程序举例 (1) #include void main() int i, a6; for(i=0;iai; for(i=5;i=0;i-) coutai ; coutendl; 在程序的主函数中首先定义了一个int型简单变量i和一个含有6个int型元素的数组a,接着使数组a中的每一个元素依次从键盘上得到一个相应的整

14、数,最后使数组a中的每一个元素的值按下标从大到小的次序显示出来,每个值之后显示出一个空格,以便使相邻的元素值分开。 若程序运行时,从键盘上输入3,8,12,6,20,15这6个整数,则得到的输入和运行结果为: 3 8 12 6 20 15 15 20 6 12 8 3 (2) #include void main() int a8=25,64,38,40,75,66,38,54; int max=a0; for(int i=1;imax) max=ai; coutmax:maxendl; 在这个程序的主函数中,第一条语句定义了一个整型数组a8,并对它进行了初始化;第二条语句定义了一个整型变量m

15、ax,并用数组a中第一个元素a0的值初始化;第三条语句是一个for循环,它让循环变量i从1依次取值到7,依次使数组a中的每一个元素ai同max进行比较,若元素值大于max的值,则就把它赋给max,使max始终保存着从a0ai元素之间的最大值,当循环结束后,max的值就是数组a中所有元素的最大值;第四条语句输出max的值。 在该程序的执行过程中,max依次取a0,a1和a4的值,不会取其他元素的值。程序运行结果为: max:75 (3) #include const int N=7; void main() double wN=2.6,7.3,4.2,5.4,6.2,3.8,1.4; int i

16、,x; coutx; for(i=0;ix) coutwi=wiendl; 此程序的功能是从数组aN中顺序查找出比x值大的所有元素并显示出来。若从键盘上输入的x值为5.0,则得到的程序运行结果为: 输入一个实数:5.0 w1=7.3 w3=5.4 w4=6.2 (4) #include const int M=10; void main() int aM+1; a0=1; a1=2; int i; for(i=2;i=M;+i) ai=ai-1+ai-2; for(i=0;iM;+i) coutai,; coutaMendl; 该程序首先定义数组a,并分别为数组元素a0和a1赋值1和2,接着依

17、次计算出a2至aM的值,每个元素值均等于它的前两个元素值之和,最后按照下标从小到大的次序显示出数组a中每个元素的值。该程序运行结果为: 1,2,3,5,8,13,21,34,55,89,144 2.2 二维数组 1. 定义格式 二维数组同一维数组一样,也是通过变量定义语句定义的,其定义格式为: =,.; 在上述定义格式中,和两边的中括号也同一维数组定义中两边的中括号的用法相同,都是语法所要求的符号,不是指一般规定的其内容为任选项的标识。 二维数组定义中的和分别指定数组的第一维下标(又称为行下标)和第二维下标(又称为列下标)取值的个数,假定和的值分别为m和n,则行下标的取值范围是0m-1之间的m

18、个整数,列下标的取值范围是0n-1之间的n个整数。 对于一个行下标取值个数为m,列下标取值个数为n的二维数组a,它所含元素的个数为m*n,即数组长度为m*n,每一个元素含有两个下标,具体表示为:“”,数组a中的所有元素表示为: a00 a01 . a0n-1 a10 a11 . a1n-1 M M M M am-10 am-11 . am-1n-1 我们知道,当定义了一个一维数组后,系统为它分配一块连续的存储空间,该空间的大小为n*sizeof(),其中n为一维数组长度。 在C+系统中,数组名同时表示该数组占用的存储空间的首地址。例如,若定义了一个int型的一维数组b10,则下标为i的元素bi

19、的地址为b+4*i,其中0i9。在内存中数组b的存储分配示意图为: 0 1 2 3 4 5 6 7 8 9b0b1b2b3b4b5b6b7b8b9 0 4 8 12 16 20 24 28 32 36 其中每个方框表示一个元素的存储单元,它的上面为该元素的下标,也是存储单元的顺序编号,下面为该元素相对于首地址b的偏移地址。 当定义了一个二维数组后,系统也同样为它分配一块连续的存储空间,该存储空间的大小为m*n*sizeof(),其中m和n分别表示第一维下标和第二维下标的取值个数。 系统给一个二维数组中的所有元素分配存储单元时,是首先按行下标从小到大的次序,行下标相同再按列下标从小到大的次序进行

20、的。例如,若定义了一个double型的二维数组cMN,则任一元素cij的地址为c+(i*N+j)*8,其中0iM-1, 0jN-1。假定常量M和N分别为4和2,则数组c的存储分配示意图为: 0 1 2 3 4 5 6 7c00c01c10c11c20C21c30c31 0 8 16 24 32 40 48 56 同一维数组的存储分配示意图一样,每个方框表示一个元素的存储单元,它的上面为存储单元的顺序编号,下面为该元素相对于首地址c的偏移地址。 若要计算c21的存储地址,则为c+(2*2+1)*8=c+40。 若在二维数组的定义格式中,包含有最后的初始化选项,则能够在定义二维数组的同时,对所有元

21、素进行初始化,其中每个用花括号括起来的初值表用于初始化数组中的一行元素,即用于初始化行下标为0的所有元素,用于初始化行下标为1的所有元素,依次类推。同一维数组的初始化一样,若有的元素没有对应的初始化数据,则自动对它初始化为0。 在二维数组的定义格式中,若带有初始化选项,则可以省略,此时将定义一个行数等于初值表个数的二维数组。 2. 格式举例(1) int a33;(2) double bMN; /假定M和N为整型常量(3) int c24=1,3,5,7,2,4,6,8;(4) int d3=0,1,2,3,4,5,6,7,8;(5) int e34=0,1,2;(6) char fCN+1C

22、N+1,c1=a,c2; /假定CN为整型常量(7) int g10,h105;(8) int r5; 第一条语句定义了一个二维数组a33,它包含有9个元素,元素类型为int,每个元素同一个int型简单变量一样,能够用来表示和存储一个整数。 第二条语句定义了一个元素类型为double的二维数组bMN,它包含M*N个元素,每个元素用来保存一个实数,元素中行下标的有效范围为0M-1,列下标的有效范围为0N-1,任一元素bij的存储地址为b+(i*N+j)*8,当然i和j都要在有效取值范围以内。 第三条语句定义了一个元素类型为int的二维数组c24,并对该数组进行了初始化,使得c00, c01, c

23、02和c03的初值分别为1,3,5和7;c10, c11, c12和c13的初值分别为2,4,6和8。 第四条语句定义了一个元素类型为int的二维数组d,它的列下标的取值范围为02,行下标的取值范围没有显式给出,但由于给出了初始化选项,并且含有三个初值表,所以取值范围隐含为02,相当于在数组定义的第一个中括号内省略了行下标取值个数3。 第五条语句定义了一个元素类型为int的二维数组e34,它的第1行(即行下标为0)的四个元素被初始化为0,第2行的四个元素e10, e11, e12和e13分别被初始化为1,2,0和0,第3行的四个元素也均被初始化为0。 第六条语句定义了一个元素类型为char的二

24、维数组f,它的行、列下标的上界均为CN,其取值均为0CN之间的整数,该语句同时定义了字符变量c1和c2,并使c1初始化为字符a。 第七条语句同时定义了两个元素类型为int的数组,一个为一维数组g10,另一个为二维数组h105,它们分别含有10个元素和50个元素,每个元素能够表示和存储一个整数。 第八条语句定义的二维数组r是错误的,因为它既没有给出第一维下标的取值个数,又没有给出初始化选项,所以系统无法确定该数组的长度,从而无法为它分配一定大小的存储空间。 3. 数组元素的访问 一个二维数组被定义后,与使用一维数组一样,是通过下标运算符指明和访问元素,其中对行下标和列下标都要进行运算才能够唯一指

25、定一个元素。二维数组中的一个元素由于使用了两个下标,所以又称为双下标变量。一个双下标变量中的任一个下标不仅可以为常量,同样可以为变量或表达式,当然它们都必须为整数类型。如: (1) a23 /每个下标均为常量 (2) aij /每个下标均为变量 (3) ai5 /行下标为变量,列下标为常数 (4) ai-1j+1 /每个下标均为表达式 若i和j的值分别为2和3,则上述下标变量aij对应的元素为a23,ai5对应的元素为a25,ai-1j+1对应的元素为a14。 使用双下标变量同使用单下标变量和简单变量一样,既可以用它存储数据,又可以取出它的值参加运算。如: (1) int a45; /定义数组

26、 (2) a12=6; /向a12元素赋值6 (3) a22=3*a12+1; /取出a12的值6参与运算, /把赋值号右边表达式的值19赋给a22元素中 (4) aij-1=aij; /把aij的值赋给aij-1元素中 (5) couta12*a22-3endl; /输出表达式的值111到显示窗口上 C+系统对待二维下标变量同样不作下标有效性检查,所以也需要编程者通过程序进行检查处理,避免下标越界的情况发生。 在C+语言中,不仅可以定义和使用一维数组和二维数组,也可以定义和使用三维及更高维的数组。如,下面的语句定义了一个三维数组: int sPMN; /假定P,M,N均为已定义的整型常量 该

27、数组的数组名为s,第一维下标的取值范围为0P-1,第二维下标的取值范围为0M-1,第三维下标的取值范围为0N-1。该数组共包含P*M*N个int型的元素,共占用P*M*N*4个字节的存储空间。数组中的每个元素由三个下标唯一确定,如s103就是该数组中的一个元素(假定P,M和N分别大于等于2,1和4)。 若用一个三维数组来表示一本书,则第一维表示页,第二维表示页内的行,第三维表示行内一个字符位置所在的列,数组中每个元素的值就是相应位置上的字符。 4. 程序举例 (1) #include const int M=3,N=4; void main() int aMN=7,5,14,3,6,20,7,

28、8,14,6,9,18; int i,j; for(i=0;iM;i+) for(j=0;jN;j+) coutsetw(5)aij; coutendl; 该程序首先定义了一个元素为int类型的二维数组aMN,并对它进行了初始化;接着通过双重for循环输出每一个元素的值,其中外循环变量i控制行下标从小到大依次变化,内循环变量j控制列下标从小到大依次变化,每输出一个元素值占用显示窗口的5个字符宽度,当同一行元素(即行下标值相同的元素)输出完毕后,将输出一个换行符,以便下一行元素从显示窗口的下一行显示出来。该程序的运行结果为: 7 5 14 3 6 20 7 8 14 6 9 18 (2) #in

29、clude void main() int b25=7,15,2,8,20,12,25,37,16,28; int i,j,k=b00; for(i=0;i2;i+) for(j=0;jk) k=bij; coutkendl; 在这个程序中首先定义了元素类型为int的二维数组b25并初始化,接着定义了int型的简单变量i,j,k,并对k初始化为b00的值7,然后使用双重for循环依次访问数组b中的每个元素,并且每次把大于k的元素值赋给k,循环结束后k中将保存着所有元素的最大值,并被输出出来,这个值就是b12的值37。 (3) #include const int M=4; void main(

30、) int cM=0; int dM3=1,5,7,3,2,10,6,7,9,4,3,7; int i,j,sum=0; for(i=0;iM;i+) for(j=0;j3;j+) ci+=dij; sum+=ci; for(i=0;iM;i+) coutci ; coutsumendl; 该程序主函数中的第一条语句定义了一个一维数组cM并使每个元素初始化为0,第二条语句定义了一个二维数组dM3并使每个元素按所给的数值初始化,第三条语句定义了i,j和sum,并使sum初始化为0,第四条语句是一个双重for循环,它依次访问数组d中的每个元素,并把每个元素的值累加到数组c中与该元素的行下标值相同的

31、对应元素中,然后再把数组c中的这个元素值累加到sum变量中,第五条语句依次输出数组c中的每个元素值,第六条语句输出sum的值。该程序把二维数组d中的同一行元素值累加到一维数组c中的相应元素中,把所有元素的值累加到简单变量sum中。该程序的运行结果为: 13 15 22 14 64 2.3 使用typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef ; 例如: (1) typedef int vector10; (2) typedef char strings80; (3) typedef short int arrayN; 第一条语句定义了一个元素类型为int,含有10个

32、元素的数组类型vector,若不使用typedef保留字,则就变成了数组定义,它只定义了一个元素类型为int、含有10个元素的数组vector。这两种定义有着本质的区别,若定义的是数组vector,系统将为它分配有保存10个整数的存储单元,共40个字节的存储空间;若定义的是数组类型vector,系统只是把该类型的有关信息登记下来,待以后利用该类型定义对象时使用,具体地说,就是把vector的元素类型int,类型长度10,类型名vectoe等登记下来,待以后定义vector类型的对象时使用。 第二条语句定义了一个元素类型为char,含有80个元素的数组类型strings,以后可以直接使用stri

33、ngs类型定义数组对象,每个数组对象的元素为char型,数组长度(即元素个数)为80。 第三条语句定义了一个元素类型为short int的含有N个元素(N为已定义的符号常量)的数组类型array,以后利用它可以直接定义该类型的对象,它是一个含有N个短整型元素的数组。 下面是利用上述类型定义对象的一些例子。 (1) vector v1,v2; (2) strings s1,s2=define type; (3) array a=25,36,19,48,44,50; /假定常量N6 第一条语句定义了vector类型的两个对象v1和v2,每个对象都是vector类型的一个数组,每个数组由10个整型元

34、素所组成。 第二条语句定义了strings类型的三个对象s1,s2和s3,并且对s3进行了初始化,每个对象都是含有80个字符空间的数组。 第三条语句定义了一个array类型的对象a,它是一个含有N个短整型元素的数组,该语句同时对数组a进行了初始化,使得a0a5的元素值依次为25,36,19,48,44和50。 2. 二维数组类型的定义格式 typedef ; 例如: (1) typedef int matrix55; (2) typedef char nameTable10NN; (3) typedef double DDM+1N+1; 第一条语句定义了含有5行5列共25个int型元素的数组类

35、型matrix,第二条语句定义了10行NN列共10*NN个char型元素的数组类型nameTable,第三条语句定义了含有M+1行N+1列共(M+1)*(N+1)个double类型元素的数组类型DD。 利用这三个二维数组类型可以直接定义出相应的二维数组。如:(1) matrix mx=0;(2) nameTable nt=; /或使用等同的0初始化(3) DD dd=0.0; 第一条语句定义了二维整型数组类型matrix的一个对象mx,该对象是一个5*5的二维整型数组,每个元素均被初始化为0;第二条语句定义了二维字符数组类型nameTable 的一个二维字符数组nt,该数组中的每个元素均被初始

36、化为空字符;第三条语句定义了二维双精度数组类型DD的一个数组dd,它的每个元素均被初始化为0.0。 在typedef语句中,可以是C+语言中预定义的任何一种数据类型,也可以是用户在前面已定义的任何一种数据类型,所以通过该语句定义的类型同样可以用在其后的typedef语句中。如: (1) typedef vector vectorSet20; (2) vectorSet vs; 第一条语句定义了元素类型为vector,元素个数为20的一个数组类型vectorSet,第二条语句定义了数据类型为vectorSet的一个对象vs,该对象包含有20个类型为vector的元素,每个元素又包含有10个int

37、类型的元素,所以整个数组共包含有20行10列共200个整数元素,它等同于对vs的如下定义: int vs2010; 利用typedef语句同样可以定义更高维的数组类型,这里就不进行讨论了。 3. 对已有类型定义别名 利用typedef语句不仅能够定义数组类型,而且能够对已有类型定义出另一个类型名,以此作为原类型的一个别名。如: (1) typedef int inData; (2) typedef char chData; (3) typedef char* chPointer; 第一条语句对int类型定义了一个别名inData,第二条语句对char类型定义了一个别名chData,第三条语句对char*类型(它是字符指针类型)定义了一个别名chPointer。以后使用inData,chData和chPointer就如同分别使用int,char和char*一样,定义出相应的对象。如:(1) inData x,y;(2) inData a5=1,2,3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁