Присваивание структуры

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

4.16. Операция 'запятая<

выражение _ с _ запятой: выражение, выражение Пара выражений, разделенных запятой, вычисляется слева нап-раво и значение левого выражения отбрасывается. Типом и зна-чением результата является тип и значение правого операнда.Эта операция группируется слева направо. В контексте, гдезапятая имеет специальное значение, как, например, в спискефактических аргументов функций или в списках инициализато-ров, операция запятая, описываемая в этом разделе, можетпоявляться только в круглых скобках; например, функция f (a, (t =3 ,t +2) ,c) имеет три аргумента, второй из которых имеет значение 5.

Старшинство и порядок вычисления.

В приводимой ниже таблице сведены правила старшинства иассоциативности всех операций. Операции, расположенные водной строке, имеют один и тот же уровень старшинства;строки расположены в порядке убывания старшинства. Так, нап-ример, операции *, " / " и " % " имеют одинаковый уровень стар-шинства, который выше, чем уровень операций " + " и " - ". -20- Таблица 2 ------------------------------------------ | Оператор | Ассоциативность | |____________________|___________________| | () [] ->. | слева направо | |____________________|___________________| | ~ ++ -- - f | справа налево | |(type) * & sizeof | | |____________________|___________________| | * / % | слева направо | |____________________|___________________| | + - | слева направо | |____________________|___________________| | << >> | слева направо | |____________________|___________________| | < <= > > = | слева направо | |____________________|___________________| | ==!= | слева направо | |____________________|___________________| | & | слева направо | |____________________|___________________| | ^ | слева направо | |____________________|___________________| | | | слева направо | |____________________|___________________| | && | слева направо | |____________________|___________________| | || | слева направо | |____________________|___________________| | ?: | справа налево | |____________________|___________________| | = += -= и т.п. | справа налево | |____________________|___________________| |, | слева направо | |____________________|___________________| Отметим, что уровень старшинства побитовых логическихопераций &, ^ и | ниже уровня операций == и !=. Это приводитк тому, что осуществляющие побитовую проверку выражения,подобные if ((х & mask) == 0)... для получения правильных результатов должны заключаться вкруглые скобки, в противном случае оно будет понято так: выражение: x & mask == 0 понято как: x & (mask == 0) -21-

* 5. ОПИСАНИЯ

Описания используются для указания интерпретации, кото-рую язык Си будет давать каждому идентификатору; они не обя-зательно резервируют память, соответствующую идентификатору.Описания имеют форму описание: спецификаторы _ описания список _ описателей; необ Описатели в списке описателей содержат описываемые идентифи-каторы. Спецификаторы описания представляют собой последо-вательность спецификаторов типа и спецификаторов классапамяти. спецификаторы _ описания: с _ типа с _ описания необ с _ класса _ памяти с _ описания необ где c _... - спецификатор _... Список описателей должен быть согласованным в смысле, описы-ваемом ниже.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: