陣列與指標(1)

2021-09-10 08:06:37 字數 2188 閱讀 9188

1.二維陣列定義的一般形式為:

型別說明符 陣列名[常量表示式][常量表示式];

如:定義a為3×4(3行4列)的陣列,b為5×10(5行10列)的陣列

float a[3][4],b[5][10];

2.字串和字串結束標誌:

為了測定字串的實際長度,c語言規定了乙個「字串結束標誌」——『\0』。

3.字元陣列的輸入輸出可以有兩種方法:

逐個字元輸入輸出。用格式符「%c」輸入或輸出乙個字元。

將整個字串一次輸入或輸出。用「%s」格式符,意思是對字串的輸入輸出。

(1)用「%s」格式符輸出字串時,printf函式中的輸出項是字元陣列名,而不是陣列元素名。

(2)如果陣列長度大於字串實際長度,也只輸出到遇′\0′結束。

(3)輸出字元不包括結束符′\0′。

(4)如果乙個字元陣列中包含乙個以上′\0′,則遇第乙個′\0′時輸出就結束。

(5)可以用scanf函式輸入乙個字串。

4.字串處理函式

(1)puts函式

其一般形式為: puts (字元陣列)

其作用是將乙個字串(以′\0′結束的字串行)輸出到終端。

用puts函式輸出的字串中可以包含轉義字元。

例如:char str=;

puts(str);

輸出結果:

china

beijing

(2)gets函式

其一般形式為:gets(字元陣列)

其作用是從終端輸入乙個字串到字元陣列,並且得到乙個函式值。

(3)strcat函式

其一般形式為:strcat(字元陣列1,字元陣列2)

strcat的作用是連線兩個字元陣列中的字串,把字串2接到字串1的後面,結果放在字元陣列1中。

(4)strcpy函式

其一般形式為:strcpy(字元陣列1,字串2) strcpy是「字串複製函式」。

作用:是將字串2複製到字元陣列1中去。

(1)字元陣列1必須定義得足夠大,以便容納被複製的字串。字元陣列1的長度不應小於字串2的長度。

(2)「字元陣列1」必須寫成陣列名形式,「字串2」可以是字元陣列名,也可以是乙個字串常量。

(3)複製時連同字串後面的′\0′一起複製到字元陣列1中。

(4)可以用strncpy函式將字串2中前面若干個字元複製到字元陣列1中去。

(5)不能用賦值語句將乙個字串常量或字元陣列直接給乙個字元陣列。

(5)strcmp函式

其一般形式為:strcmp(字串1,字串2)

strcmp的作用是比較字串1和字串2。

比較的結果由函式值帶回

(1) 如果字串1=字串2,函式值為0。

(2) 如果字串1>字串2,函式值為一正整數。

(3) 如果字串1《字串2,函式值為一負整數。

(6)strlen函式

其一般形式為: strlen (字元陣列)

strlen是測試字串長度的函式。函式的值為字串中的實際長度(不包括′\0′在內)。

5.形參與實參

形式引數:定義函式時函式名後面括號中的變數名

實際引數:呼叫函式時函式名後面括號中的表示式

6.引數傳遞

值傳遞方式方式:

函式呼叫時,為形參分配單元,並將實參的值複製到形參中;呼叫結束,形參單元被釋放,實參單元仍保留並維持原值;

特點:形參與實參占用不同的記憶體單元; 單向傳遞

位址傳遞方式:

函式呼叫時,將資料的儲存位址作為引數傳遞給形參

特點:形參與實參占用同樣的儲存單元;「雙向」傳遞;實參和形參必須是位址常量或變數;

7.用static宣告區域性變數:函式中的區域性變數的值在函式呼叫結束後不消失而保留原值,以便下一次呼叫該函式時可以使用上一次呼叫的最後結果。這時就應該指定該區域性變數為「靜態區域性變數」。

用extern宣告外部變數:外部變數(即全域性變數)是在函式的外部定義的,它的作用域為從變數的定義處開始,到本程式檔案的末尾。在此作用域內,全域性變數可以為程式中各個函式所引用。

用static宣告外部變數:外部變數只限於被本檔案引用,而不能被其它檔案引用,可以在定義外部變數時加乙個static宣告。

c之指標與陣列(1)

1.指標與位址 一元運算子 是間接定址或者間接引用運算子。例如 int x 1,y int ip ip x y ip 2.指標與函式引數 c語言是以傳值的方式將引數值傳遞給被呼叫函式,因此被呼叫函式不能直接修改主調函式中變數的值。例如 void swap int x,int y swap不能交換兩個...

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

陣列 指標(1)

a a 0 a a 0 前提是 int a 10 1.a就是陣列名。a做右值表示陣列首元素 陣列的第0個元素,也就是a 0 的首位址 首位址就是起始位址,就是4個位元組中最開始第乙個位元組的位址 a做右值等同於 a 0 2 a 0 表示陣列的首元素,也就是陣列的第0個元素。做左值時表示陣列第0個元素...