Язык программирования C



         

Инициализация - часть 2


может быть переписана в виде

int nwhite = 0; int nother = 0; int ndigit[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

main() /* count digits, white space, others */ ( int c, i; ... )

Эти инициализации фактически не нужны, так как все присваиваемые значения равны нулю, но хороший стиль - сделать их явными. Если количество начальных значений меньше, чем указанный размер массива, то остальные элементы заполняются нулями. Перечисление слишком большого числа начальных значений является ошибкой. К сожалению, не предусмотрена возможность указания, что некоторое начальное значение повторяется, и нельзя инициализировать элемент в середине массив без перечисления всех предыдущих.

Для символьных массивов существует специальный способ инициализации; вместо фигурных скобок и запятых можно использовать строку:

char pattern[] = "the";

Это сокращение более длинной, но эквивалентной записи:

char pattern[] = { 't', 'h', 'e', '\0' };

Если размер массив любого типа опущен, то компилятор определяет его длину, подсчитывая число начальных значений. В этом конкретном случае размер равен четырем (три символа плюс конечное \0).




Содержание  Назад  Вперед