logo search
Подбельский Фомин_Программирование на языке СИ_

Инициализация и присваивание структур.

Инициализация и присваивание структур. Инициализация структур похожа на инициализацию массивов. Непосредственно в определении конкретной структуры после ее имени и знака '=' в фигурных скобках размещается список начальных значений элементов. Например:

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

Попытка использовать имена массивов без индексов в операции присваивания будет обречена на провал (ведь имя массива есть неизменяемый указатель):

В то же время стандарт языка Си разрешает присваивание структур. Если не обращать внимание на смысл имен введенных выше структур типа struct goods (tea - чай; coat - пиджак), то допустимо следующее присваивание:

Определив структуру типа complex, можно выполнить, например, такое присваивание (структура sigma того же типа определена и инициализирована выше):

Отметим, что для структур не определены операции сравнения даже на равенство. И сравнивать структуры нужно только поэлементно.