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