Язык С


         

COUNT DIGITS, WHITE SPACE, OTHERS


NWHITE = NOTHER = 0; FOR (I = 0; I < 10; I++) NDIGIT[I] = 0; ... )

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

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).




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