在理解指標陣列的概念之前,先來看看以下範例,在這個範例中使用3
個整數的陣列 -
#import <Foundation/Foundation.h>
const int MAX = 3;
int main () {
int var[] = {10, 100, 200};
int i;
for (i = 0; i < MAX; i++) {
NSLog(@"Value of var[%d] = %d\n", i, var[i] );
}
return 0;
}
執行上面範例程式碼,得到以下結果:
2018-11-15 05:57:51.168 main[13412] Value of var[0] = 10
2018-11-15 05:57:51.170 main[13412] Value of var[1] = 100
2018-11-15 05:57:51.170 main[13412] Value of var[2] = 200
如果想要維護一個陣列,該陣列可以儲存指向int
或char
或任何其他可用資料型別的指標。 以下是一個指向整數的指標陣列的宣告 -
int *ptr[MAX];
這將ptr
宣告為MAX
整數指標的陣列。 因此,ptr
中的每個元素現在都包含一個指向int
型別值的指標。 下面的例子使用了三個整數,它們將儲存在一個指標陣列中,如下所示 -
#import <Foundation/Foundation.h>
const int MAX = 3;
int main () {
int var[] = {10, 100, 200};
int i, *ptr[MAX];
for ( i = 0; i < MAX; i++) {
ptr[i] = &var[i]; /* 分配整數的地址. */
}
for ( i = 0; i < MAX; i++) {
NSLog(@"Value of var[%d] = %d\n", i, *ptr[i] );
}
return 0;
}
執行上面範例程式碼,得到以下結果 -
2018-11-15 06:00:41.868 main[84495] Value of var[0] = 10
2018-11-15 06:00:41.870 main[84495] Value of var[1] = 100
2018-11-15 06:00:41.870 main[84495] Value of var[2] = 200
還可以使用指向字元的指標陣列來儲存字串列表,如下所示 -
#import <Foundation/Foundation.h>
const int MAX = 4;
int main () {
char *names[] = {"Yiibai Su", "Hina Lee", "XNew Luang", "Kaops Ali",};
int i = 0;
for ( i = 0; i < MAX; i++) {
NSLog(@"Value of names[%d] = %s\n", i, names[i] );
}
return 0;
}
執行上面範例程式碼,得到以下結果:
2018-11-15 06:02:10.526 main[126578] Value of names[0] = Yiibai Su
2018-11-15 06:02:10.528 main[126578] Value of names[1] = Hina Lee
2018-11-15 06:02:10.528 main[126578] Value of names[2] = XNew Luang
2018-11-15 06:02:10.528 main[126578] Value of names[3] = Kaops Ali