Objective-C陣列


Objective-C程式設計語言提供了一種叫作陣列的資料結構,它可以儲存相同型別的固定大小順序元素的集合。陣列用於儲存資料集合,但將陣列視為相同型別的變數集合通常更有用。

可以宣告一個陣列變數(例如numbers)並使用numbers[0]numbers[1]...numbers[99]來表示單個變數,例如:number0number1...number99,而不是宣告單個變數。 使用索引來存取陣列中的特定元素。

所有陣列都包含連續的記憶體位置。 最低地址對應於第一個元素,最高地址對應於最後一個元素。

1. 宣告陣列

在Objective-C中宣告一個陣列,程式員需要指定元素的型別和陣列所需的元素數量,如下所示 -

type arrayName [ arraySize ];

這稱為一維陣列。 arraySize必須是大於零的整數常數,type可以是任何有效的Objective-C資料型別。 例如,要宣告一個名稱為balancedouble型別的10元素陣列,請使用此語句 -

double balance[10];

現在,balance是一個變數陣列,最多可容納10double型別。

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 指向陣列的指標 只需指定陣列名稱即可生成指向陣列第一個元素的指標,而無需任何索引。