4.1 數(shù)組
考點1 數(shù)組的概念
數(shù)組是一種用一個名字來標(biāo)識一組有序且類型相同的數(shù)據(jù)組成的派生數(shù)據(jù)類型,它占有一段連續(xù)的內(nèi)存空間,數(shù)組的特征是(1)數(shù)組名;(2)數(shù)組各元素的類型;(3)維數(shù)(即標(biāo)識數(shù)組元素所需的下標(biāo)個數(shù));(4)數(shù)組大小(即可容納數(shù)組元素的個數(shù))。
小提示:
使用數(shù)組之前必須用聲明語句指明數(shù)組的上述4個特征。
考點2 一維數(shù)組
1. 一維數(shù)組的定義
一維數(shù)組也稱向量,它是由具有一個下標(biāo)的數(shù)組元素組成的數(shù)組,它的定義形式為:
類型 數(shù)組名[大小];
其中,方括號為下標(biāo)運(yùn)算符,具有優(yōu)先級和從右向左結(jié)合性。
2. 一維數(shù)組的初始化
與其他的基本數(shù)據(jù)類型一樣,數(shù)組也可以在定義的同時對數(shù)組各元素初始化,初始化表達(dá)式按元素順序依次寫在一對花括號內(nèi)?;ɡㄌ栔械臄?shù)組元素之間以逗號分隔。初始化時可以不指定數(shù)組的大小,編譯器會根據(jù)初始化列表來確定數(shù)組的大小。但只給出部分元素初始化時,就要指定數(shù)組大小。
小提示:
只將部分元素初始化后,其他元素的初始化值隱含地為0。
3. 訪問數(shù)組元素
訪問數(shù)組元素的語法格式為:
<數(shù)組名>「<表達(dá)式>〕
其中,<表達(dá)式>是非負(fù)的整型表達(dá)式,也就是數(shù)組的下標(biāo),數(shù)組下標(biāo)是用來指定所要訪問的數(shù)組中的元素位置。注意:數(shù)組下標(biāo)是從0開始的。
考點3 二維數(shù)組
二維數(shù)組也稱二級向量,我們可以把二維數(shù)組看做一個其元素為一維數(shù)組的一維數(shù)組。
定義二維數(shù)組的一般格式為:
<數(shù)據(jù)類型><數(shù)組名>[m][n];
二維數(shù)組中的每個元素要用兩個下標(biāo)來表示,前一個為行下標(biāo),后一個為列下標(biāo)。因此,規(guī)定[m]表示二維數(shù)組的行下標(biāo)的大小,[n]表示二維數(shù)組的列下標(biāo)的大小。
二維數(shù)組元素的表示方法為:
<數(shù)組名>[<下標(biāo)1>][<下標(biāo)2>];
其中,這兩個下標(biāo)的取值范圍都是從0開始,而不是從1開始的。
與一維數(shù)組一樣,二維數(shù)組也可在定義的同時進(jìn)行初始化,方法也是類似的。舉例如下:
int a[2][2]={{1,1},{3,2}};
但需要注意的是,如果對全部元素賦初值,一維數(shù)組能根據(jù)賦的初值的個數(shù)自動計數(shù)以確定數(shù)組的大小,所以定義的時候可不指定第一維的大小,但第二維的大小是不可以省略的。
小提示:
在C++中,二維數(shù)組在計算機(jī)中的存儲順序是安排好行順序存儲的,就是先存儲第1行,然后再存儲第2行,依次類推。
考點4 多維數(shù)組
由一維和二維數(shù)組的定義類推可以推得多維數(shù)組就是多級向量,它的元素要用數(shù)組名加n個下標(biāo)來標(biāo)識。多維數(shù)組的大小為各維大小的乘積。若將多維數(shù)組作為函數(shù)的形參時,可以不指定第一維的大小,但其他維的大小一定要指定。多維數(shù)組只可以作為引用參數(shù)傳遞給函數(shù),且函數(shù)的返回值不可以是數(shù)組類型。
考點5 字符數(shù)組
1. 字符數(shù)組的概念
字符數(shù)組就是一個字符類型的數(shù)組,其中每一個元素存放一個字符。字符數(shù)組也稱字符串。C++規(guī)定,字符數(shù)組的最后一個元素一定是’\0’。例如,字符數(shù)組存儲字符串:" Hello!world. "的語句形式為:char str[]=" Hello!world";但系統(tǒng)會自動在其末尾加一個空白字符’\0’。也就是說字符數(shù)組存儲一個字符串比實際使用的字符串要多一個字節(jié)。
2. 常用字符串函數(shù)
C++提供了一系列字符串處理函數(shù),這些函數(shù)都包含在cstring頭文件中。常用的C++字符串處理函數(shù)如下。
(1)strcat字符串1,字符串2)。此函數(shù)是字符串連接函數(shù),它的功能是把兩個字符串連接起來。具體方法是把字符串2連接到字符串1的末端,并將結(jié)果存放到字符串1中。注意:存放結(jié)果字符串的數(shù)組的空間要確保足夠大。
小提示:
兩個字符串連接后,前一個數(shù)組最后的字符’\0’就消失了。
(2) strcpy(字符串1,字符串2)。此函數(shù)是字符拷貝函數(shù),它的功能是把一個字符串中的字符拷貝到另一個字符串變量中。具體方法是把字符串2中的字符拷貝到字符串1中。注意:要確保存放結(jié)果的字符串1的空間足夠大。
(3) strcmp(字符串1,字符串2)。此函數(shù)是字符串比較函數(shù),它是用來比較字符串的。比較方法是:若兩個字符串相等(匹配),返回0(“假”);若字符串1在字典順序上比字符串2大,則返回一個正數(shù);若字符l在字典順序上比字符串2小,則返回一個負(fù)數(shù)。
(4) strlen(字符串)。此函數(shù)是字符串長度函數(shù),它的功能是求字符串的長度。函數(shù)的值為字符串中不計’\0’的字符的個數(shù)。
(5) strstr(字符串1,字符串2)。此函數(shù)是字符串查找函數(shù).它的功能是在一個字符串中查找子串。查找方法是在字符串1中從左邊開始查找字符串2,若查找成功,返回字符串2在字符串1中第一次出現(xiàn)的位置則返回NULL,若字符串2為" ",則返回字符串1。
考點1 數(shù)組的概念
數(shù)組是一種用一個名字來標(biāo)識一組有序且類型相同的數(shù)據(jù)組成的派生數(shù)據(jù)類型,它占有一段連續(xù)的內(nèi)存空間,數(shù)組的特征是(1)數(shù)組名;(2)數(shù)組各元素的類型;(3)維數(shù)(即標(biāo)識數(shù)組元素所需的下標(biāo)個數(shù));(4)數(shù)組大小(即可容納數(shù)組元素的個數(shù))。
小提示:
使用數(shù)組之前必須用聲明語句指明數(shù)組的上述4個特征。
考點2 一維數(shù)組
1. 一維數(shù)組的定義
一維數(shù)組也稱向量,它是由具有一個下標(biāo)的數(shù)組元素組成的數(shù)組,它的定義形式為:
類型 數(shù)組名[大小];
其中,方括號為下標(biāo)運(yùn)算符,具有優(yōu)先級和從右向左結(jié)合性。
2. 一維數(shù)組的初始化
與其他的基本數(shù)據(jù)類型一樣,數(shù)組也可以在定義的同時對數(shù)組各元素初始化,初始化表達(dá)式按元素順序依次寫在一對花括號內(nèi)?;ɡㄌ栔械臄?shù)組元素之間以逗號分隔。初始化時可以不指定數(shù)組的大小,編譯器會根據(jù)初始化列表來確定數(shù)組的大小。但只給出部分元素初始化時,就要指定數(shù)組大小。
小提示:
只將部分元素初始化后,其他元素的初始化值隱含地為0。
3. 訪問數(shù)組元素
訪問數(shù)組元素的語法格式為:
<數(shù)組名>「<表達(dá)式>〕
其中,<表達(dá)式>是非負(fù)的整型表達(dá)式,也就是數(shù)組的下標(biāo),數(shù)組下標(biāo)是用來指定所要訪問的數(shù)組中的元素位置。注意:數(shù)組下標(biāo)是從0開始的。
考點3 二維數(shù)組
二維數(shù)組也稱二級向量,我們可以把二維數(shù)組看做一個其元素為一維數(shù)組的一維數(shù)組。
定義二維數(shù)組的一般格式為:
<數(shù)據(jù)類型><數(shù)組名>[m][n];
二維數(shù)組中的每個元素要用兩個下標(biāo)來表示,前一個為行下標(biāo),后一個為列下標(biāo)。因此,規(guī)定[m]表示二維數(shù)組的行下標(biāo)的大小,[n]表示二維數(shù)組的列下標(biāo)的大小。
二維數(shù)組元素的表示方法為:
<數(shù)組名>[<下標(biāo)1>][<下標(biāo)2>];
其中,這兩個下標(biāo)的取值范圍都是從0開始,而不是從1開始的。
與一維數(shù)組一樣,二維數(shù)組也可在定義的同時進(jìn)行初始化,方法也是類似的。舉例如下:
int a[2][2]={{1,1},{3,2}};
但需要注意的是,如果對全部元素賦初值,一維數(shù)組能根據(jù)賦的初值的個數(shù)自動計數(shù)以確定數(shù)組的大小,所以定義的時候可不指定第一維的大小,但第二維的大小是不可以省略的。
小提示:
在C++中,二維數(shù)組在計算機(jī)中的存儲順序是安排好行順序存儲的,就是先存儲第1行,然后再存儲第2行,依次類推。
考點4 多維數(shù)組
由一維和二維數(shù)組的定義類推可以推得多維數(shù)組就是多級向量,它的元素要用數(shù)組名加n個下標(biāo)來標(biāo)識。多維數(shù)組的大小為各維大小的乘積。若將多維數(shù)組作為函數(shù)的形參時,可以不指定第一維的大小,但其他維的大小一定要指定。多維數(shù)組只可以作為引用參數(shù)傳遞給函數(shù),且函數(shù)的返回值不可以是數(shù)組類型。
考點5 字符數(shù)組
1. 字符數(shù)組的概念
字符數(shù)組就是一個字符類型的數(shù)組,其中每一個元素存放一個字符。字符數(shù)組也稱字符串。C++規(guī)定,字符數(shù)組的最后一個元素一定是’\0’。例如,字符數(shù)組存儲字符串:" Hello!world. "的語句形式為:char str[]=" Hello!world";但系統(tǒng)會自動在其末尾加一個空白字符’\0’。也就是說字符數(shù)組存儲一個字符串比實際使用的字符串要多一個字節(jié)。
2. 常用字符串函數(shù)
C++提供了一系列字符串處理函數(shù),這些函數(shù)都包含在cstring頭文件中。常用的C++字符串處理函數(shù)如下。
(1)strcat字符串1,字符串2)。此函數(shù)是字符串連接函數(shù),它的功能是把兩個字符串連接起來。具體方法是把字符串2連接到字符串1的末端,并將結(jié)果存放到字符串1中。注意:存放結(jié)果字符串的數(shù)組的空間要確保足夠大。
小提示:
兩個字符串連接后,前一個數(shù)組最后的字符’\0’就消失了。
(2) strcpy(字符串1,字符串2)。此函數(shù)是字符拷貝函數(shù),它的功能是把一個字符串中的字符拷貝到另一個字符串變量中。具體方法是把字符串2中的字符拷貝到字符串1中。注意:要確保存放結(jié)果的字符串1的空間足夠大。
(3) strcmp(字符串1,字符串2)。此函數(shù)是字符串比較函數(shù),它是用來比較字符串的。比較方法是:若兩個字符串相等(匹配),返回0(“假”);若字符串1在字典順序上比字符串2大,則返回一個正數(shù);若字符l在字典順序上比字符串2小,則返回一個負(fù)數(shù)。
(4) strlen(字符串)。此函數(shù)是字符串長度函數(shù),它的功能是求字符串的長度。函數(shù)的值為字符串中不計’\0’的字符的個數(shù)。
(5) strstr(字符串1,字符串2)。此函數(shù)是字符串查找函數(shù).它的功能是在一個字符串中查找子串。查找方法是在字符串1中從左邊開始查找字符串2,若查找成功,返回字符串2在字符串1中第一次出現(xiàn)的位置則返回NULL,若字符串2為" ",則返回字符串1。