0

如果我声明了一个外部变量,例如extern char **seasons. 有关如何编写循环以遍历此数组的任何提示?假设 NULL 值是停止条件?

4

4 回答 4

3

假设您的数组如下所示:

const char *data[] = {"This", "is", "an", "array", "of", "strings", NULL};

您可以像这样遍历它:

const char** seasons = data;
int i;
for(i = 0; seasons[i] != NULL; ++i) {
    printf("%s ", seasons[i]);
}
于 2013-11-05T11:22:01.397 回答
0

这里有 3 个变种:

extern char **seasons;
size_t i;
for(i = 0; seasons[i]; i++) {
   do_something(seasons[i]);
}

或者

extern char **seasons;
char **i;
for(i = seasons; *i ; i++) {
   do_something(*i);
}

或者

extern char **seasons;
char **i = seasons;
while(*i) {
   do_something(*i);
   i++;
}
于 2013-11-05T11:25:29.753 回答
0

如果arr是您的数组并且您想在该索引处停止icontains arrNULL则标准for循环将如下所示:

for (i = 0; arr[i]; i++)
   dostuff(arr[i]);
于 2013-11-05T10:57:01.777 回答
0
#include <stdio.h>
#include <stdlib.h>

extern char **seasons;

int main(){
  int i = 0;
  while(seasons[i] != NULL){
    printf(seasons[i]);
    i++;
  }
  return 0;
}
于 2013-11-05T10:56:13.477 回答