0Pricing
C Academy · Урок

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

Порядок вычисления

«Приоритет операторов» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Арифметические операторы
  2. Отношения и логика
  3. Присваивание и приращение
  4. Приоритет операторов
← Назад к C Academy