Операции присваивания
|
++
--
=
*=
/=
%=
+=
-=
<<=
>>=
&=
|=
^=
|
Унарный инкремент
Унарный декремент
Простое присваивание
Умножение с присваиванием
Деление с
присваиванием
Остаток от деления с
присваиванием
Сложение с присваиванием
Вычитание с
присваиванием
Сдвиг влево с присваиванием
Сдвиг вправо с
присваиванием
Поразрядное И с
присваиванием
Поразрядное
включающее ИЛИ с присваиванием
Поразрядное
исключающее ИЛИ с присваиванием
|
При присваивании тип правого операнда преобразуется к типу
левого операнда.
Операции инкремента и декремента
Операции ++ и -- инкрементируют (увеличивают на единицу) и декрементируют (уменьшают на единицу) свой операнд.
Операнд должен иметь целый, плавающий тип или быть указателем.
Простое присваивание
Операция простого присваивания обозначается знаком =. Значение правого операнда присваивается левому
операнду. При присваивании выполняются правила преобразования типов.
Составное присваивание
Операция составного присваивания состоит из простой
операции присваивания, скомбинированной с какой-либо другой
бинарной операцией. При составном присваивании вначале выполняется действие,
специфицированное бинарной операцией, а затем результат присваивается левому
операнду.
Приоритет
и порядок выполнения
Приоритет и ассоциативность операций языка Си
влияют на порядок группирования операндов и вычисления операций в выражении.
Приоритет операций существен только при наличии нескольких операций, имеющих
различный приоритет. Выражения с более приоритетными операциями вычисляются
первыми.
Приоритет и ассоциативность
операций в языке Си
|
Знак операции
|
Наименование
|
Ассоциативность
| |
()
[] . ->
|
Первичные
|
Слева направо
| |
+
- ~ ! * & ++ --sizeof приведение типа
|
Унарные
|
Справа налево
| |
*
/ %
|
Мультипликативные
|
Слева направо
| |
+
-
|
Аддитивные
|
Слева направо
| |
>>
<<
|
Сдвиг
|
Слева направо
| |
<
> <= >=
|
Отношение
|
Слева направо
| |
==
!=
|
Отношение
|
Слева направо
| |
&
|
Поразрядное
И
|
Слева направо
| |
^
|
Поразрядное
исключающее ИЛИ
|
Слева направо
| |
|
|
Поразрядное
включающее ИЛИ
|
Слева направо
| |
&&
|
Логическое
И
|
Слева направо
| |
||
|
Логическое
ИЛИ
|
Слева направо
| |
?:
|
Условная
|
Справа налево
| |
= *= /= %= += -= <<= >>= &= |= ^=
|
Простое
и составное присваивание
|
Справа налево
| |
,
|
Последовательное
вычисление
|
Слева направо
|
Побочные эффекты
Побочный эффект выражается в неявном
изменении значения переменной в процессе вычисления выражения. Все операции
присваивания могут вызывать побочный эффект. Вызов функции, в которой
изменяется значение какой-либо внешней переменной, либо путем явного
присваивания, либо через указатель, также имеет побочный эффект.
|