天天看點

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++自定義資料類型之數組