Что такое одномерный массив строк? - PullRequest
0 голосов
/ 22 апреля 2020

1- Что такое одномерный массив строк?

2- Является ли char *[] 2 мерным?

3- Является ли char *[] 1 массив линейных строк?

Спасибо.

1 Ответ

0 голосов
/ 22 апреля 2020

char *[] - это неполный тип одномерного массива указателей на тип char.

Вы можете написать, например,

char *s[] = { "string1", "string2", "string3" };

, и в этом случае массив s представляет собой массив из трех указателей на строковые литералы.

Если вы объявите массив вне любой функции, например

char *s[];

, тогда вы получите предварительное определение одномерного массива с одним элементом.

Объявление двумерного массива выглядит как

char s[N1][N2];

или

char s[][N2] = { /* some initializers */ };

, где N1 и N2 - некоторые натуральные числа.

Содержит ли строка (ы) одномерный или двумерный символьный массив зависит от пользователя массива.

Вот пример

char s1[] = "Hello";
char s2[6] = "Hello";
char s3[5] = "Hello";

Здесь массивы s1 и s2 содержат строку, а массив s3 не содержит строку, потому что он не включает конечный ноль строкового литерала, используемого в качестве инициализатора.

Или

char * s[] = { "Hello" };

Этот массив не содержит строку. Это массив из одного указателя на строковый литерал.

...