C語言基礎(chǔ)教程(二)數(shù)據(jù)類型、變量和運算符(8)

字號:

4.4 數(shù)組變量
     所謂數(shù)組就是指具有相同數(shù)據(jù)類型的變量集, 并擁有共同的名字。數(shù)組中的每
    個特定元素都使用下標(biāo)來訪問。數(shù)組由一段連續(xù)的存貯地址構(gòu)成, 最低的地址對應(yīng)
    于第一個數(shù)組元素, 的地址對應(yīng)最后一個數(shù)組元素。數(shù)組可以是一維的、也可
    以是多維的。Turbo C2.0象它高級語方一樣也使用數(shù)組變量。
     一、一維數(shù)組
     一維數(shù)組的說明格式是:
     類型 變量名[長度];
     類型是指數(shù)據(jù)類型, 即每一個數(shù)組元素的數(shù)據(jù)類型, 包括整數(shù)型、浮點型、字
    符型、指針型以及結(jié)構(gòu)和聯(lián)合。
     例如:
     int a[10];
     unsigned long a[20];
     char *s[5];
     char *f[];
     說明:
     1. 數(shù)組都是以0作為第一個元素的下標(biāo), 因此, 當(dāng)說明一個int a[16] 的整型
    數(shù)組時, 表明該數(shù)組有16個元素, a[0]~a[15], 一個元素為一個整型變量。
     2. 大多數(shù)字符串用一維數(shù)組表示。數(shù)組元素的多少表示字符串長度, 數(shù)組名
    表示字符串中第一個字符的地址, 例如在語句char str[ 8] 說明的數(shù)組中存入
    "hello"字符串后, str表示第一個字母"h"所在的內(nèi)存單元地址。str[0] 存放的是
    字母"h"的ASCII碼值, 以此類推, str[4]存入的是字母"o"的ASCII碼值, str[5]則
    應(yīng)存放字符串終止符'\0'。
     3. Turbo C2.0對數(shù)組不作邊界檢查。例如用下面語句說明兩個數(shù)組
     char str1[5], str2[6];
     當(dāng)賦給str1一個字符串"ABCDEFG"時, 只有"ABCDE"被賦給, "E" 將會自動的賦
    給str2, 這點應(yīng)特別注意。
     三、多維數(shù)組
     多維數(shù)組的一般說明格式是:
     類型 數(shù)組名[第n維長度][第n-1維長度]......[第1維長度];
     這種說明方式與BASIC、FORTRAN等語言中多維數(shù)組的說明不一樣。
     例如:
     int m[3][2]; /*定義一個整數(shù)型的二維數(shù)組*/
     char c[2][2][3]; /*定義一個字符型的三維數(shù)組*/
     數(shù)組m[3][2]共有3*2=6個元素, 順序為:
     m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1];
     數(shù)組c[2][2][3]共有2*2*3=12個元素, 順序為:
     c[0][0][0], c[0][0][1], c[0][0][2],
     c[0][1][0], c[0][1][1], c[0][1][2],
     c[1][0][0], c[1][0][1], c[1][0][2],
     c[1][1][0], c[1][1][1], c[1][1][2],
     數(shù)組占用的內(nèi)存空間(即字節(jié)數(shù))的計算式為:
     字節(jié)數(shù)=第1維長度*第2維長度*...*第n維長度*該數(shù)組數(shù)據(jù)類型占用的字節(jié)數(shù)