Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Понимание приоритета и ассоциативности операторов в C: четкое руководство

Приоритет операторов

Приоритет операторов определяет, какой оператор выполняется первым, если в выражении более одного оператора.

Рассмотрим пример:

int x = 5 - 17 * 6;

В C приоритет * выше, чем - и =. Следовательно, 17 * 6 вычисляется первым. Затем выражение с - вычисляется, так как приоритет - выше, чем у =.

Вот таблица приоритета операторов от высшего к низшему. Свойство ассоциативности будет обсуждено вскоре.

Таблица приоритета и ассоциативности операторов

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

Ассоциативность операторов

Ассоциативность операторов определяет направление, в котором выражение вычисляется. Например,

b = a;

Здесь значение a присваивается b, а не наоборот. Это потому, что ассоциативность оператора = справа налево.

Также, если два оператора одного приоритета (приоритета) присутствуют, ассоциативность определяет направление, в котором они выполняются.

Рассмотрим пример:

1 == 2 != 3

Здесь операторы == и != имеют одинаковый приоритет. И их ассоциативность слева направо. Следовательно, 1 == 2 выполняется первым.

Выражение выше эквивалентно:

(1 == 2) != 3

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

Содержание

Язык C

  1. Структура программы на C: разбор Hello World и процесс компиляции
  2. Оператор switch в C: синтаксис, логика и практический пример
  3. Структуры (struct) в C++: объяснение с практическим примером
  4. C# против C++: четкое сравнение особенностей, производительности и сценариев использования
  5. Как передавать одномерные и двумерные массивы в функции в C — практическое руководство
  6. Модели наследования в C++: множественное, многоуровневое, иерархическое
  7. Область видимости переменных в C++: локальные и глобальные
  8. Освоение условных операторов C++: if, if...else и вложенные if...else
  9. Операторы в C: исчерпывающее руководство
  10. Интерфейсы в C++: абстрактные классы и чисто виртуальные функции