第5章 陣列與結構體
5.1 Arrays(陣列)
陣列的維數:陣列中的元素個數
陣列下標 (或索引) :元素在陣列中的位置,陣列下標從0開始
注意:
陣列最後一個元素的下標=陣列大小減一,因為陣列下標是從0開始的,否則將輸出地址
定義並初始化一個數組。 陣列的初始化數值寫在 { } 內並用 , 分隔開。
例如:int array[]={1,2,3,4,5,6,7};
當初值個數少於陣列元素個數時,其餘的陣列元素將被初始化為0 值。
如果定義一個數組時對陣列元素進行了初始化,但是沒有指定陣列元素個數,那麼編譯器將根據花括號內提供的初值個數來確定陣列元素的個數。
5.2 Structures(結構體)
typedef 允許程式設計師為系統內建的或者程式設計師自定義的資料型別名定義一個同義詞。
使用 typedef 定義一個同義詞 ,可以簡化程式,提高可讀性
例如:
struct date
{
.................
};
原本定義一個變數a:
struct date a;
使用 typedef 定義後:
typedef struct date DATE;
DATE a;
5.4 Arrays of structures(結構體陣列)
例如:
陣列的每個元素都是擁有三個成員number、dob和joined的struct personnel的結構體型別。
成員dob 和 joined本身又是擁有日、月和年三個成員的結構體。
可以被訪問的格式: persons[0].number; persons[4].joined.year;
Programming pitfalls(易犯的錯誤)
1.應將陣列的維數(下標)放在方括號之內,而非圓括號之內。
2.陣列下標的取值範圍是從0 開始到陣列的元素個數減1。
3.即使結構體的模板是相同的,也不能在if 語句中對兩個結構體變數進行比較。
若要比較兩個結構體變數相等與否,那麼必須對兩個變數的每個成員都單獨進行比較。
Quick syntax reference(快速語法參考)