天天看点

C++自定义数据类型之数组

     数组

      数组是数目固定,类型相同的若干变量的有序集合。

      数组的定义格式:<类型说明符>  <数组名>  [<大小1>][<大小>]...  带有n个[<大小>]的为n维数组。方括号中的<大小>表示维数的大小,它也可以是一个常量表达式。

      数组元素的表示:<数组名> [<下标表达式1>][<下标表达式2>]... 数组下标规定为从0开始并且各个元素在内存中是按下标的升序顺序存放的。

      数组的赋值:数组可以被赋初值(及被初始化),也可以被赋值。在一般的情况下,只有在存储类为外部和静态的数组才可以被初始化。

      数组的赋初值:这种情况实在定义或说明数组时实现的,实现赋初值的方法是使用初始值表,初始值表是用一对“{}”括起来的若干数据项组成的,多个数据项之间用逗号隔离,数据项的个数应该小于或等于数组元素的个数。

      数组的赋值:这种情况是给数组中的各个元素赋值,其方法与一般变量的赋值方法相同,使用赋值达式语句。

      一维数组

      int  a[3]={3,2,1}(或利用数组的赋值:int  a[3]; a[0]=3;a[1]=2;a[2]=1;前一种利用的是数组的赋初值)

      int是一维数组的数据类型,a是一维数组的数组名,3为一维数组的大小,它有三个元素,按照顺序分别为:a[0]=3,a[1]=2,a[2]=1。

      二维数组

      float  b[2][3]={{1,2,3},{4,5,6}}(或float  b[2][3]={1,2,3,4,5,6},前一种格式是将数组b看成一维数组,它有两个元素,每个元素又可以看成一维数组)

      float是二维数组的数据类型,b是二维数组的数组名,[2]*[3]为二维数组的大小,它有六个元素,按照顺序分别为:b[0][0]=1,b[0][1]=2,b[0][2]=3,b[1][0]=4,b[1][1]=5,b[1][2]=6。

      三维数组

      double  c[2][3][2]={{{3,4},{5}},{{6},{7,8}}}(数组中有六个元素没有被初始化,它们都被默认为是0)

      double是三维数组的数据类型,c是三维数组的数组名,12为三维数组的大小,它有十二个元素,按照顺序分别为:c[0][0][0]=3,c[0][0][1]=4,c[0][1][0]]=0,c[0][1][1]=0,c[0][2][0[0]=5,c[0][2][1]=0,c[1][0][0]=6,c[1][0][1]=0,c[1][1][0]=7,c[1][1][1]=8,c[1][2][0]=0,c[1][2][1]=0。

      字符数组

      字符数组是指数组元素是字符的一类数组。字符数组可以用来存放多个字符,也可以用来存放字符串,两种区别在前面已经申明过。

      字符数组存放的是字符还是字符串:

      两者的区别在于数组元素中是否有字符串的结束符('\0')。

      char s1[3]={'a','b','c'}   存放的是字符

      char s2[4]={'a','b','c','\0'}   存放的是字符串,因此char s2[4]="abc"。如果要对字符数组赋值时应对每一个元素进行赋值,不能用一个字符串常量直接赋值。(char s3[4];

s3[4]="abc";这种赋值是非法的,正确的应该为char s3[4];s3[0]='a';s3[1]='b';s3[2]='c';s3[3]='\0';)

      举一个例子:

<span style="font-size:18px;">#include <iostream.h>
int ia[5]={3,5,7};
void main()
{
     char s1[7]="abcdef";
     double d3[3]={12.3,45.6,78.9};
     cout<<ia[0]<<ia[2]<<ia[4]<<endl;
     cout<<ia[1]*2-ia[3]<<endl;
     cout<<s1[5]<<endl;//若不进行运算输出的为字符
     cout<<s1[2]+2<<endl;//若表达式进行运算则输出的是int型值
     cout<<s1+3<<endl;//输出的为数组从第三个元素以后的所有元素
     cout<<d3[0]+d3[1]+d3[2]<<endl;
     cout<<d3[1]+ia[1]<<endl;//int型ia[1]保值隐式强制转换成double型ia[1]
}</span>
           
C++自定义数据类型之数组