二級C輔導教程及考點分析:第四章數(shù)組

字號:

數(shù) 組
     數(shù)組在程序設(shè)計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在C語言中, 數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個數(shù)組可以分解為多個數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。
     本章介紹數(shù)值數(shù)組和字符數(shù)組,其余的在以后各章陸續(xù)介紹。數(shù)組類型說明 在C語言中使用數(shù)組必須先進行類型說明。 數(shù)組說明的一般形
     式為: 類型說明符 數(shù)組名 [常量表達式],……; 其中,類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。 數(shù)組名是用戶定義的數(shù)組標識符。 方括號中的常量表達式表示數(shù)據(jù)元素的個數(shù),也稱為數(shù)組的長度。
     例如:
     int a[10]; 說明整型數(shù)組a,有10個元素。
     float b[10],c[20]; 說明實型數(shù)組b,有10個元素,實型數(shù)組c,有20個元素。
     char ch[20]; 說明字符數(shù)組ch,有20個元素。
     對于數(shù)組類型說明應(yīng)注意以下幾點:
     1.數(shù)組的類型實際上是指數(shù)組元素的取值類型。對于同一個數(shù)組,其所有元素的數(shù)據(jù)類型都是相同的。
     2.數(shù)組名的書寫規(guī)則應(yīng)符合標識符的書寫規(guī)定。
     3.數(shù)組名不能與其它變量名相同,例如:
     void main()
     {
     int a;
     float a[10];
     ……
     }
     是錯誤的。
     4.方括號中常量表達式表示數(shù)組元素的個數(shù),如a[5]表示數(shù)組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0],a[1],a[2],a[3],a[4]。
     5.不能在方括號中用變量來表示元素的個數(shù), 但是可以是符號常數(shù)或常量表達式。例如:
     #define FD 5
     void main()
     {
     int a[3+2],b[7+FD];
     ……
     }
     是合法的。但是下述說明方式是錯誤的。
     void main()
     {
     int n=5;
     int a[n];
     ……
     }
     6.允許在同一個類型說明中,說明多個數(shù)組和多個變量。
     例如: int a,b,c,d,k1[10],k2[20];
     數(shù)組元素的表示方法
     數(shù)組元素是組成數(shù)組的基本單元。數(shù)組元素也是一種變量, 其標識方法為數(shù)組名后跟一個下標。 下標表示了元素在數(shù)組中的順序號。數(shù)組元素的一般形式為: 數(shù)組名[下標] 其中的下標只能為整型常量或整型表達式。如為小數(shù)時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數(shù)組元素。 數(shù)組元素通常也稱為下標變量。必須先定義數(shù)組, 才能使用下標變量。在C語言中只能逐個地使用下標變量, 而不能一次引用整個數(shù)組。 例如,輸出有10 個元素的數(shù)組必須使用循環(huán)語句逐個輸出各下標變量:
     for(i=0; i<10; i++)  printf("%d",a[i]); 而不能用一個語句輸出整個數(shù)組,下面的寫法是錯誤的: printf("%d",a);
     void main()
     {
     int i,a[10];
     for(i=0;i<10;i++)
     a[i++]=2*i+1;
     for(i=9;i>=0;i--)
     printf("%d",a[i]);
     printf("\n%d %d\n",a[5.2],a[5.8]);
     }
       本例中用一個循環(huán)語句給a數(shù)組各元素送入奇數(shù)值,然后用第二個循環(huán)語句從大到小輸出各個奇數(shù)。在第一個 for語句中,表達式3省略了。在下標變量中使用了表達式i++,用以修改循環(huán)變量。當然第二個for語句也可以這樣作, C語言允許用表達式表示下標。 程序中最后一個printf語句輸出了兩次a[5]的值, 可以看出當下標不為整數(shù)時將自動取整。數(shù)組的賦值給數(shù)組賦值的方法除了用賦值語句對數(shù)組元素逐個賦值外, 還可采用初始化賦值和動態(tài)賦值的方法。數(shù)組初始化賦值數(shù)組初始化賦值是指在數(shù)組說明時給數(shù)組元素賦予初值。 數(shù)組初始化是在編譯階段進行的。這樣將減少運行時間,提高效率。