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ù)
所謂數(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ù)