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