Objective-C指针数组

在理解指针数组的概念之前,先来看看以下示例,在这个示例中使用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

如果想要维护一个数组,该数组可以存储指向intchar或任何其他可用数据类型的指针。 以下是一个指向整数的指针数组的声明 -

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[] = {"zaixian 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] = zaixian 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

上一篇: Objective-C指针 下一篇: Objective-C字符串