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

字號(hào):

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