2015-10-22 2 views
1

Мне нужно добавить строку в массив и вам нужна помощь в выяснении того, что это значит. Вот что у меня есть:C - что делает (* Таблица [i]) означает/делать?

#include <stdio.h> 
#include <stdlib.h> 
int insert(char *word, char *Table[], int n) 
{ 
//*word is the string to be added, *Table[] is the array, n is 
//the return value, which is the number of words in the array after adding *word 
    int i = 0; 
    while(*Table[i]) 
    { 
     if strcmp(*Table[i], *word) == 0) 
     { 
      return n; 
      break; 
     } 
    } 
} 

Я написал это некоторое время назад и сейчас пересматриваю его. Я не знаю, что пока * Таблица [i] означает, поэтому я понятия не имею, что означает следующий код. Кроме того, этот код является неполным, поэтому не беспокойтесь, говоря, что он не добавит строку.

ответ

1

Оператор * разыскивает указатель, а также [i].

Поскольку таблица объявлена ​​как char * Таблица [], это то же самое, что и char **, поскольку это указатель на тип указателя (например, 2-мерный массив).

В этом случае из использования видно, что Table представляет собой массив строк (строка представляет собой массив символов (следовательно, массив массивов)).

Таким образом, таблица [i] является указателем на i-ю строку в массиве строк, а затем * разыгрывает это снова. То, что автор делает здесь, ищет NULL (ноль), который следует за массивом строк, что явно является методом определения конца массива.

Смежные вопросы