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



         

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


int x[] = {1,3,5};

описывает и инициализирует x как одномерный массив; поскольку размер массива не специфицирован, а список инициализитора содержит три элемента, считается, что массив состоит из трех членов.

Вот пример инициализации с полным использованием фигурных скобок:

float *y[4][3] = { ( 1, 3, 5 ), ( 2, 4, 6 ), ( 3, 5, 7 ), };

Здесь 1, 3 и 5 инициализируют первую строку массива y[0], а именно y[0][0], y[0][1] и y[0][2]. Аналогичным образом следующие две строчки инициализируют y[1] и y[2]. Инициализатор заканчивается преждевременно, и, следовательно массив y[3] инициализируется нулями. В точности такого же эффекта можно было бы достичь, написав

float y[4][3] = { 1, 3, 5, 2, 4, 6, 3, 5, 7 };

Инициализатор для y начинается с левой фигурной скобки, но инициализатора для y[0] нет. Поэтому используется 3 элемента из списка. Аналогично следующие три элемента используются последовательно для y[1] и y[2]. следующее описание

float y[4][3] = { (1), (2), (3), (4) };

инициализирует первый столбец y (если его рассматривать как двумерный массив), а остальные элементы заполняются нулями.

И наконец, описание

char msg[] = "syntax error on line %s\n";

демонстрирует инициализацию элементов символьного массива с помощью строки.




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