Приоритет операторов
Порядок вычисления
«Приоритет операторов» — бесплатный урок C Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 4 уроков всего.
Почему важен приоритет операторов
Приоритет определяет, какой оператор выполняется первым в выражении с несколькими операторами. Он соответствует обычным математическим правилам: умножение выполняется раньше сложения.
#include <stdio.h>
int main(void) {
printf("%d\n", 2 + 3 * 4);
return 0;
}Скобки меняют порядок
Скобки задают порядок вычислений. Используйте их, чтобы сделать замысел ясным и изменить порядок по умолчанию.
#include <stdio.h>
int main(void) {
printf("%d\n", (2 + 3) * 4);
return 0;
}Приоритет арифметических операторов
Среди арифметических операторов: * / % имеют более высокий приоритет, чем + -. Сначала выполняются операторы с высоким приоритетом.
#include <stdio.h>
int main(void) {
int r = 10 - 2 * 3;
printf("r = %d\n", r);
return 0;
}Ассоциативность
Если у операторов одинаковый приоритет, ассоциативность определяет направление вычисления. Большинство арифметических операций выполняется слева направо.
#include <stdio.h>
int main(void) {
int r = 20 / 4 / 2;
printf("r = %d\n", r);
return 0;
}Правая ассоциативность присваивания
Присваивание группируется справа налево. Поэтому выражение a = b = 5 сначала присваивает 5 переменной b, а затем переменной a.
#include <stdio.h>
int main(void) {
int a, b;
a = b = 5;
printf("a = %d, b = %d\n", a, b);
return 0;
}Сравнения и арифметика
Арифметические операторы имеют более высокий приоритет, чем операторы отношений, поэтому в выражении a + b > c сначала вычисляется a + b.
#include <stdio.h>
int main(void) {
int a = 2, b = 3, c = 4;
printf("%d\n", a + b > c);
return 0;
}Операторы отношений и логические операторы
Операторы отношений имеют более высокий приоритет, чем &&, а && — более высокий, чем ||.
#include <stdio.h>
int main(void) {
int x = 5;
if (x > 0 && x < 10)
printf("single digit positive\n");
return 0;
}Унарные операторы раньше бинарных
Унарные операторы, такие как ! и унарный -, имеют очень высокий приоритет и применяются до бинарных операторов.
#include <stdio.h>
int main(void) {
int x = 0;
printf("%d\n", !x + 1);
return 0;
}Хитрое выражение
Без скобок в этом выражении смешиваются несколько уровней приоритета. Внимательно проследите порядок вычислений.
#include <stdio.h>
int main(void) {
int r = 2 + 3 * 4 > 10 && 1;
printf("r = %d\n", r);
return 0;
}Если сомневаетесь, ставьте скобки
В хорошем коде на C скобки используются широко. Во время выполнения они ничего не стоят и предотвращают трудноуловимые ошибки.
#include <stdio.h>
int main(void) {
int a = 1, b = 2, c = 3;
if ((a < b) && (b < c))
printf("ascending\n");
return 0;
}Приоритет на практике
Здесь приоритет операторов позволяет записать аккуратную формулу без лишних скобок.
#include <stdio.h>
int main(void) {
int base = 10, rate = 2, hours = 3;
int pay = base + rate * hours;
printf("pay = %d\n", pay);
return 0;
}Быстрая проверка
Проверьте своё понимание приоритета операторов.
Итоги: приоритет операторов
Вы узнали, в каком порядке C выполняет операторы.
* / %выполняются раньше+ -- Арифметические операции выполняются раньше операций отношений, а те — раньше логических
- Большинство операторов левоассоциативны, а присваивание правоассоциативно
- Унарные операторы имеют высокий приоритет
- Скобки явно задают намерение программиста
Часто задаваемые вопросы
Урок «Приоритет операторов» бесплатный?
Да — полный текст урока «Приоритет операторов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 4 уроков всего.
Чему я научусь в уроке «Приоритет операторов»?
Порядок вычисления Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C Academy?
Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Приоритет операторов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C Academy?
Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Арифметические операторы
- Отношения и логика
- Присваивание и приращение
- Приоритет операторов