第八章 陣列

2021-08-01 21:23:40 字數 1481 閱讀 3435

第八章:陣列:

1.陣列的基本操作:

1.陣列也是一種復合型別資料型別,它由一系列相同型別的元素組成。

2.定義陣列int count[4],整個陣列佔了4個相鄰的整數的儲存空間,方括號的4表示陣列的長度,而陣列元素是從0開始的,count[i]位於從陣列開頭跳過4*i個位元組的儲存位置,這個陣列下標的表示式不僅可以表示儲存位置的值,也可以表示儲存位置本身。

3.使用陣列下標不能超出陣列的長度範圍,發生訪問越界時程式可能並不會立即崩潰,而執行到後面某個正確的語句時卻有可能突然崩潰。如:出現段錯誤

4.陣列也可以像結構體一樣初始化,未賦初值的元素也是用0來初始化,如果定義陣列的同時初始化它,出可以不指定陣列的長度。

5.通過迴圈把陣列中的每個元素依次訪問一遍,在計算機術語中稱為遍歷。

6.陣列不能相互賦值,也不能用陣列型別作為函式的引數或返回值,當陣列名作右值使用時,陣列名做右值使用時,自動轉換成指向陣列首元素  801.c

2.陣列應用例項:統計隨機數802.c

1.#define 定義乙個常量,實際上編譯器的工作分為兩個步驟,先是預處理,然後才是編譯,用gcc 的-e選項可以看到預處理之後,編譯之前的程式

2.預處理器做了兩件事, 一是把頭檔案在**中展開,二是將#define 定義的識別符號替換成它所定義的數值

3.字串

1.字串末尾有乙個字元』\0』表求字串結束。

2.字串的字面值是唯讀的,不允許更改。

char c = 「hello,world.\n」[0];

但 「hello,world.\n」[0]=』a』就是錯誤的。

3.字串字面值還有一點和陣列名類似,做右值使用時自動轉換成指向首元素的指標。

4.字元陣列也可以用乙個字串字面值來初始化

1.char str[10] = 「hello」等同於乎char str[10] =  後面四個元素沒有指定,自動初始化為了0,即』\0』字元

如果用於初始化的字串字面值比陣列還長,這種情況編譯器會給出警告,,如果要用乙個字串字面值準確地初始化乙個字元陣列,最好是不指定陣列的長度。

char str=」hello,world.\n」

2.printf函式的格式化字串中可以用%s表示字串的佔位符,特別是字串儲存在陣列中時,用%s來列印就很有必要了

printf(「string:%s\n」,str);  803.c

5.多維陣列

1.scanf函式

1.scanf(「%d」,&man)這個呼叫功能是等待使用者輸入乙個整數並回車,這個整數會被scanf函式儲存在man這個整形變數裡,如果使用者輸入合法(輸入的確實是整數而不是字串),則scanf函式返回1,表示成功讀入乙個資料。

2.scanf也可以用%c、%f、%s等轉換說明,如果在傳給scanf的第乙個引數中用了%d、%f或%c表示讀入乙個整數、浮點數或字元,則第二個引數的形式應該是&運算子加乙個相應型別的變數名稱,表示讀進來的數存在這個變數裡,如果在第乙個引數中用%s讀入乙個字串,則第二個引數應該是陣列名,陣列名前面不加&,

第八章 陣列

一 含義 1.識別符號 用於區分不同陣列的變數名 2.陣列元素 陣列中存放的資料 3.陣列下標 對陣列進行的編號 4.元素型別 即資料型別 二 語法,步驟 1.宣告變數 資料型別 s陣列名 資料型別 陣列名 2.分配空間 陣列名 new 資料型別 陣列長度 資料型別 陣列名 new int 陣列長度...

第八章 陣列

第八章 陣列 1.陣列是一組具有相同型別的變數集合,可使用乙個統一的名字來標識這組相同型別的資料,這個名字稱為陣列名,構成陣列的每個資料項稱為陣列元素.例 用如下陣列來儲存五個學生的成績 int score 5 int代表該陣列的基型別。即陣列中元素的型別.score後方括號內的數字代表陣列元素的個...

第八章 陣列

一維陣列 define months 12 int day months 一維陣列在定義的同時進行了初始化。下標從0開始,到months 1。二維陣列 二維陣列的定義以及初始化 short matrix 3 4 short matrix 4 第一維長度可以省略,但是第二維的長度不能省略。個數可以小於...