第4章 數(shù)組、指針與引用
【考點(diǎn)一】 數(shù)組
1.一維數(shù)組(1)一維數(shù)組的定義一維數(shù)組是由具有一個(gè)下標(biāo)的數(shù)組元素組成的數(shù)組,其定義形式如下:<數(shù)據(jù)類型><數(shù)組名>[<數(shù)組長度>];在此,<數(shù)據(jù)類型>是類型說明符,<數(shù)組名>是數(shù)組的名字,<數(shù)組長度>是任一值為正整數(shù)的int型常量表達(dá)式。<數(shù)組長度>用來指定數(shù)組中元素的個(gè)數(shù),即數(shù)組的大小,數(shù)組元素的下標(biāo)是從0到<數(shù)組長度>-1。(2)一維數(shù)組初始化與所有的基本數(shù)據(jù)類型相同,數(shù)組也可以在時(shí)初始化。當(dāng)數(shù)組聲明沒有給出數(shù)組的大小,但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來確定。在定義數(shù)組時(shí),可以不必給出所有數(shù)組元素的初始值,即在定義時(shí)部分地初始化數(shù)組。(3)訪問數(shù)組元素訪問數(shù)組元素的語法形式是:<數(shù)組名>[<表達(dá)式>]在此,<表達(dá)式>是非負(fù)的int型表達(dá)式,稱為下標(biāo)。下標(biāo)用于指定所要訪問的數(shù)組中元素的位置。在C+ +中,[]是一個(gè)運(yùn)算符,稱為下標(biāo)運(yùn)算符。數(shù)組下標(biāo)從0開始,長度為n的數(shù)組,其下標(biāo)的范圍是0到n-1。在數(shù)組定義以后,給數(shù)組賦值時(shí),必須一個(gè)元素一個(gè)元素的逐個(gè)訪問。
2.二維數(shù)組以行和列(即二維)形式排列的固定數(shù)目元素的集合,并且組成數(shù)組的每個(gè)元素的類型都相同,即帶有兩個(gè)下標(biāo)的數(shù)組。(1)二維數(shù)組的定義定義二維數(shù)組的語法是:<數(shù)據(jù)類型><數(shù)組名>[<表達(dá)式1>][<表達(dá)式2>];在此<表達(dá)式1>和<表達(dá)式2>是值為正整數(shù)的常量表達(dá)式。表達(dá)式<表達(dá)式1>和<表達(dá)式2>,分別用來指定數(shù)組中行和列的數(shù)目。(2)二維數(shù)組初始化與一維數(shù)組相同,二維數(shù)組也可以在定義時(shí)初始化。在定義時(shí)初始化二維數(shù)組要注意:①所有在一行中的元素可以用花括號括起來,并且用逗號分隔;②對于數(shù)字類型數(shù)組,如果給定的數(shù)值不夠,則沒有指定數(shù)值的元素將初始化為0。此時(shí),至少應(yīng)有一個(gè)值來初始化二維數(shù)組。③當(dāng)數(shù)組聲明時(shí)沒有給出第一維的大小,但是有初始化列表時(shí),第一維的大小就由列表中子列表的個(gè)數(shù)來確定。(3)訪問二維數(shù)組元素若要訪問二維數(shù)組的元素,必須要給出兩個(gè)下標(biāo):一個(gè)行下標(biāo)和一個(gè)列下標(biāo)。訪問二維數(shù)組元素的語法是:<數(shù)組名>[<表達(dá)式1>][表達(dá)式2];這里<表達(dá)式1>和<表達(dá)式2>是值為非負(fù)整數(shù)的表達(dá)式。<表達(dá)式1>指定行下標(biāo),<表達(dá)式2>指定列下標(biāo)。(3)多維數(shù)組在C+ +中,對數(shù)組維數(shù)沒有限制。下面是對數(shù)組的通用定義。以n維列表形式排列的固定數(shù)目元素的集合,稱為n維數(shù)組。定義n維數(shù)組的語法是:<數(shù)據(jù)類型><數(shù)組名>[<澩鍤?>][<表達(dá)式2>]…[<表達(dá)式n>];在此<表達(dá)式1>,<表達(dá)式2>,…<表達(dá)式n>都是值為正整數(shù)的常量表達(dá)式。訪問n維數(shù)組元素的語法是:<數(shù)組名>[<表達(dá)式1>][<表達(dá)式2>]…[<表達(dá)式n>];在此<表達(dá)式1>,<表達(dá)式2>,…<表達(dá)式n>都是值為非負(fù)整數(shù)的表達(dá)式。<表達(dá)式i>(i=1,2,…,n)用來指定第i維元素的位置。在將多維數(shù)組作為函數(shù)的形參時(shí),可以不指定該數(shù)組中第一維的大小,但是必須指定該數(shù)組中其他維的大小。多維數(shù)組只可以作為引用參數(shù)傳遞給函數(shù),并且函數(shù)不能返回一個(gè)數(shù)組類型的返回值。C+ +對數(shù)組下標(biāo)不做檢查。4.字符數(shù)組(1)string類型與字符數(shù)組string類型在ANSI/ISO標(biāo)準(zhǔn)C+ +頒布之前,標(biāo)準(zhǔn)C+ +庫并不提供string數(shù)據(jù)類型。string是一種用戶自定義的數(shù)據(jù)類型,它由C+ +標(biāo)準(zhǔn)庫來支持,而不是C+ +語言本身的一部分。在使用strign數(shù)據(jù)類型之前,需要在程序中包含頭文件string并聲明其所在的名字空間std。所有元素都是char類型的數(shù)組稱為字符數(shù)組。字符數(shù)組有如下特點(diǎn):①數(shù)組元素跟一般變量一樣可以賦值、比較、計(jì)算等。②數(shù)組下標(biāo)也是從0~N-1(N為數(shù)組長度)。③字符數(shù)組長度可以顯式給出,也可以隱式得到。④由雙引號括起來的字符串常量具有靜態(tài)字符串?dāng)?shù)組類型。⑤用字符串對數(shù)組初始化時(shí),編譯程序以′\0′作為結(jié)束這個(gè)數(shù)組的標(biāo)志。因此,數(shù)組長度至少要比字符串長度多1。(2)常用字符串函數(shù)C+ +提供了一系列字符串操作的函數(shù),這些函數(shù)都包含在頭文件cstring中。其中經(jīng)常會用到的字符串函數(shù)包括:strcpy(字符串拷貝,將一個(gè)字符串拷貝到另一個(gè)字符串變量中)、strcat(字符串連接,在字符串末端添加字符串)、strcmp(字符串比較,用來比較字符串)、strlen(字符串長度,用來求出字符串長度)、和strstr(字符串查找,在一個(gè)字符串中查找子串)。①strcpy函數(shù)調(diào)用strcpy()函數(shù)的一般形式為:strcpy(to,from);
該函數(shù)將from字符串中的內(nèi)容復(fù)制到to字符串中。請記住,構(gòu)成to的字符串必須足夠大,以便保存包含在from中的字符串。否則,to字符串將會溢出,這很可能會導(dǎo)致系統(tǒng)崩潰。②strcat函數(shù)調(diào)用strcat()函數(shù)的一般形式為:strcat(s1,s2);
該函數(shù)將字符串s2添加到字符串s1的末端;但并不修改字符串s2。必須確保字符串s1足夠大,以便保存它自己的內(nèi)容和字符串s2中的內(nèi)容。③strcmp函數(shù)調(diào)用strcmp()函數(shù)的一般形式為:strcmp(s1,s2);
該函數(shù)比較兩個(gè)字符串,如果兩個(gè)字符串相等,返回0。如果字符串s1在字典順序上比字符串s2大,則返回一個(gè)正數(shù);如果比字符串s2小,則返回一個(gè)負(fù)數(shù)。注意:函數(shù)strcmp比較兩個(gè)字符串時(shí)所采用的字典順序與真正意義上的字典順序還是有些差別的。實(shí)際上,它依次比較兩個(gè)字符串相應(yīng)字符的編碼值(如ASCII碼值)來決定兩個(gè)字符串的大小。如,上面比較strcmp(″A″,″a″)的結(jié)果變?yōu)?1,因?yàn)樽址銩′的編碼值為65,而字符′a′的編碼值為97,這與傳統(tǒng)意義上的字典順序不同。④strlen函數(shù)調(diào)用strlen()函數(shù)的一般形式為:strlen(s);
該函數(shù)返回字符串s的長度,即字符串中字符的個(gè)數(shù)(不包括字符串結(jié)尾的′\ 0′)。⑤strstr函數(shù)調(diào)用strstr()函數(shù)的一般形式為:strstr(s1,s2);
該函數(shù)在字符串s1中從左邊開始查找字符串s2,若查找成功則返回s2在s1中首次出現(xiàn)的位置,否則返回NULL,如果s2為″ ″,則返回s1。 【考點(diǎn)二】 指針指針(即指針變量)是C+ +語言最大的功能之一。一個(gè)指針是一個(gè)特定類型數(shù)據(jù)的存儲地址,比如一個(gè)變量的地址。與其他類型變量一樣,指針變量也必須要聲明。指針變量聲明的一般形式為:<數(shù)據(jù)類型>*<變量名>;
其中,<數(shù)據(jù)類型>是指針?biāo)笇ο蟮念愋,在C+ +中可以指向任何C+ +類型。<變量名>是指針變量名。指針使用兩種特殊的運(yùn)算符--*和&。一元(單目)運(yùn)算符&用于返回其操作對象的內(nèi)存地址,其操作對象通常為一個(gè)變量名。例如:ptr=&total;
希望與更多計(jì)算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計(jì)算機(jī)等級考試論壇
更多信息請?jiān)L問:考試吧計(jì)算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |