Objective-C編程語言提供了一種叫作數組的數據結構,它可以存儲相同類型的固定大小順序元素的集合。數組用於存儲數據集合,但將數組視為相同類型的變數集合通常更有用。
可以聲明一個數組變數(例如numbers
)並使用numbers[0]
,numbers[1]
和...
,numbers[99]
來表示單個變數,例如:number0
,number1
,...
和number99
,而不是聲明單個變數。 使用索引來訪問數組中的特定元素。
所有數組都包含連續的記憶體位置。 最低地址對應於第一個元素,最高地址對應於最後一個元素。
1. 聲明數組
在Objective-C中聲明一個數組,程式員需要指定元素的類型和數組所需的元素數量,如下所示 -
type arrayName [ arraySize ];
這稱為一維數組。 arraySize
必須是大於零的整數常量,type
可以是任何有效的Objective-C數據類型。 例如,要聲明一個名稱為balance
的double
類型的10
元素數組,請使用此語句 -
double balance[10];
現在,balance
是一個變數數組,最多可容納10
個double
類型。
2. 初始化數組
可以逐個初始化Objective-C中的數組,也可以使用單個語句,如下所示 -
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
大括弧{}
之間的值的數量不能大於在方括號[]
之間為數組聲明的元素的數量。以下是分配數組的單個元素的示例 -
如果省略數組的大小,則會創建一個足以容納初始化的數組。 因此,如果這樣寫 -
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
這將創建與上一示例中完全相同的數組。
balance[4] = 50.0;
上面的語句將數組中的第5
元素賦值為50.0
。 具有第四個索引的數組它擁有5
個元素,因為所有數組都將0
作為第一個元素的索引,也稱為基本索引。 以下是上面討論的相同數組的圖形表示 -
3. 訪問數組元素
通過索引數組名稱來訪問元素。通過將元素的索引放在數組名稱後面的方括號中來完成的。 例如 -
double salary = balance[9];
上面的語句將從數組中取出第10
個元素,並將值賦給salary
變數。 以下是一個例子,它將使用上述所有三個概念,即數組聲明,分配和訪問數組 -
#import <Foundation/Foundation.h>
int main () {
int n[ 10 ]; /* n 是10個整數的數組 */
int i,j;
/* 從 n 到 0 初始化數組的值 */
for ( i = 0; i < 10; i++ ) {
n[ i ] = i + 100; /* 從i 至 i + 100 設置數組元素的值 */
}
/* 輸出每個數組元素的值 */
for (j = 0; j < 10; j++ ) {
NSLog(@"Element[%d] = %d\n", j, n[j] );
}
return 0;
}
執行上面示例代碼,得到以下結果:
2018-11-15 02:52:00.725 main[97171] Element[0] = 100
2018-11-15 02:52:00.727 main[97171] Element[1] = 101
2018-11-15 02:52:00.727 main[97171] Element[2] = 102
2018-11-15 02:52:00.727 main[97171] Element[3] = 103
2018-11-15 02:52:00.728 main[97171] Element[4] = 104
2018-11-15 02:52:00.728 main[97171] Element[5] = 105
2018-11-15 02:52:00.728 main[97171] Element[6] = 106
2018-11-15 02:52:00.728 main[97171] Element[7] = 107
2018-11-15 02:52:00.728 main[97171] Element[8] = 108
2018-11-15 02:52:00.728 main[97171] Element[9] = 109
4. Objective-C數組詳細介紹
數組對Objective-C很重要,需要更多細節。 以下幾個與數組相關的重要概念應該對Objective-C程式員清楚 -
編號 | 概念 | 描述 |
---|---|---|
1 | 多維數組 | Objective-C支持多維數組,多維數組的最簡單形式是二維數組。 |
2 | 將數組傳遞給函數 | 通過指定不帶索引的數組名稱來向函數傳遞指向數組的指針。 |
3 | 從函數返回數組 | Objective-C允許函數返回一個數組。 |
4 | 指向數組的指針 | 只需指定數組名稱即可生成指向數組第一個元素的指針,而無需任何索引。 |