Книга: Язык программирования Си. Издание 3-е, исправленное
A7.17. Выражения присваивания
A7.17. Выражения присваивания
Существует несколько операторов присваивания; они выполняются справа налево.
выражение-присваивания:
условное-выражение
унарное-выражение оператор-присваивания выражение-присваивания
оператор-присваивания: один из
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
Операторы присваивания в качестве левого операнда требуют lvalue, причем модифицируемого; это значит, что оно не может быть массивом, или иметь незавершенный тип, или быть функцией. Тип левого операнда, кроме того, не может иметь квалификатора const; и, если он является структурой или объединением, в них не должно быть элементов или подэлементов (для вложенных структур или объединений) с квалификаторами const.
Тип выражения присваивания соответствует типу его левого операнда, а значение равно значению его левого операнда после завершения присваивания.
В простом присваивании с оператором = значение выражения замещает объект, к которому обращается lvalue. При этом должно выполняться одно из следующих условий: оба операнда имеют арифметический тип (если типы операндов разные, правый операнд приводится к типу левого операнда); оба операнда есть структуры или объединения одного и того же типа; один операнд есть указатель, а другой - указатель на void; левый операнд - указатель, а правый - константное выражение со значением 0; оба операнда - указатели на функции или объекты, имеющие одинаковый тип (за исключением возможного отсутствия const или volatile у правого операнда).
Выражение E1 op= E2 эквивалентно выражению E1 = E1 op(E2) с одним исключением: E1 вычисляется только один раз.
- A7.1. Генерация указателя
- A7.2. Первичные выражения
- A7.3. Постфиксные выражения
- А7.4. Унарные операторы
- A7.5. Оператор приведения типа
- A7.6. Мультипликативные операторы
- A7.7. Аддитивные операторы
- A7.8. Операторы сдвига
- A7.9. Операторы отношения
- A7.10. Операторы равенства
- A7.11. Оператор побитового И
- A7.12. Оператор побитового исключающего ИЛИ
- A7.13. Оператор побитового ИЛИ
- A7.14. Оператор логического И
- A7.15. Оператор логического ИЛИ
- А7.16. Условный оператор
- A7.17. Выражения присваивания
- A7.18. Оператор запятая
- A7.19. Константные выражения
- A7.11. Оператор побитового И
- 4.1.2. Арифметические операторы присваивания
- Операции и L-выражения
- 4.11. Выражения присваивания
- 2.10 Операторы и выражения присваивания
- Индексы по выражениям
- Выражения в значениях по умолчанию для доменов
- Выражения в EXCEPTION
- 6. Выражения реляционной алгебры
- 3.13.7. Рекурсия в регулярных выражениях
- 6. Лекция: Обработка текстов. Регулярные выражения. Unicode.
- Применение лямбда-выражения в качестве задачи