Вот тут небольшая
цитата
Массивы и строки
Массив — это тип данных, который используется для представления последовательности однотипных значений. Массивы объявляются подобно обычным переменным, с указанием в квадратных скобках размерности (количества элементов в массиве):
int digits[10]; //Массив из десяти элементов типа int char str[10]; //Массив из десяти символов (строка)
Доступ к элементам массива реализуется с помощью индекса (порядкового номера элемента, начиная с 0):
digits[0] = 0; digits [1] = 1; str[C] = 'А';
str[l] = 'В1;
Зачастую гораздо удобнее инициализировать массив непосредственно при его объявлении, например:
int digits [10] = {О, 1, 2, 3, 4, 5, б, 7, 8, 9};
char str[10] - {'Т', 'h', 'e', ' ', Ч', '!', 'п1, 'е'};
int n;
char.с;
п = digits[2]; //п = 2
с = str[1]; //с = 'h'
Строки
Строка в С — это массив типа char. Выше был рассмотрен пример объявления такого массива, соответствующего строке "The Jine". Это объявление можно было бы выполнить и с помощью строкового литерала:
char str[10] = "The line";
Однако в таком случае следует помнить, что компилятор неявно завершает строковые литералы символом '\0', и, таким образом, реальная длина строки больше на 1. Это следует учитывать, чтобы при инициализации массива не выйти за его пределы.
При инициализации строк размерность массива можно явно не указывать:
char str[] = "The line";
В этом случае компилятор определит размерность самостоятельно. (Это правило применимо и к инициализации любых других массивов.)
Многомерные массивы
Язык С допускает использование многомерных массивов, то есть массивов, элементами которых являются массивы. Примеры объявления таких массивов:
int a2[10] [2]; //Двухмерный массив 10x2 int аЗ[3] [2] [5]; //Трехмерный массив 3x2x5
Фактически, все элементы многомерного массива хранятся в памяти последовательно, поэтому представленные ниже примеры инициализации аналогичны:
int а[2][3] = { {1, 2, 3},
(4, 5, 6} };
и
int а[2][3] = { 1, 2, 3, 4, 5, 6 };
Для доступа к элементам многомерного массива используются индексы по каждой из размерностей или операции разыменования указателя. Например, чтобы извлечь в некоторую переменную п цифру 4 из представленного выше массива а, можно воспользоваться одним из двух вариантов:
п = а[1][0]; //Извлекаем элемент из "строки" 1 (вторая),
//"столбца" 0 (первый), то есть - цифру 4
п = * (a -t- 3); //а - указатель на первый элемент массива,
//следовательно a -t- 3 - указатель на 4-й