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

Операторы в C: исчерпывающее руководство

Операторы в C

В этом руководстве вы узнаете об операторах в программировании на C с помощью примеров.

Видео: Арифметические операторы в C

Оператор — это символ, выполняющий операцию над значением или переменной. Например: + — оператор сложения.

В C широкий набор операторов для выполнения различных операций.


Арифметические операторы в C

Арифметический оператор выполняет математические операции: сложение, вычитание, умножение, деление и т.д. над числовыми значениями (константами и переменными).

ОператорЗначение
+сложение или унарный плюс
-вычитание или унарный минус
*умножение
/деление
%остаток от деления (модуло)

Пример 1: Арифметические операторы

// Работа арифметических операторов
#include <stdio.h>
int main() {
    int a = 9, b = 4, c;
    c = a + b; printf("a+b = %d \n", c);
    c = a - b; printf("a-b = %d \n", c);
    c = a * b; printf("a*b = %d \n", c);
    c = a / b; printf("a/b = %d \n", c);
    c = a % b; printf("Remainder when a divided by b = %d \n", c);
    return 0;
}

Вывод

a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b = 1

Операторы +, -, * работают как ожидается. При обычном расчёте 9/4 = 2.25, но программа выдаёт 2, так как оба операнда — целые, и компилятор отбрасывает дробную часть. Оператор % вычисляет остаток (здесь 1). % работает только с целыми.

Если a = 5.0, b = 2.0, c = 5, d = 2, то:

// Хотя бы один операнд — с плавающей точкой
a/b = 2.5
a/d = 2.5
c/b = 2.5
// Оба операнда — целые
c/d = 2

Операторы инкремента и декремента в C

В C есть операторы инкремента ++ и декремента -- для изменения значения операнда на 1.

++ увеличивает на 1, -- уменьшает на 1. Это унарные операторы (работают с одним операндом).

Пример 2: Инкремент и декремент

// Работа инкремента и декремента
#include <stdio.h>
int main() {
    int a = 10, b = 100;
    float c = 10.5, d = 100.5;
    printf("++a = %d \n", ++a);
    printf("--b = %d \n", --b);
    printf("++c = %f \n", ++c);
    printf("--d = %f \n", --d);
    return 0;
}

Вывод

++a = 11
--b = 99
++c = 11.500000
--d = 99.500000

Здесь операторы используются как префиксы. Они также могут быть постфиксами: a++, a--. Разница: префикс возвращает новое значение, постфикс — старое.


Операторы присваивания в C

Оператор присваивания используется для присваивания значения переменной. Самый частый — =.

ОператорПримерТо же, что
=a = ba = b
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b

Пример 3: Операторы присваивания

// Работа операторов присваивания
#include <stdio.h>
int main() {
    int a = 5, c;
    c = a;      printf("c = %d\n", c); // 5
    c += a;     printf("c = %d\n", c); // 10
    c -= a;     printf("c = %d\n", c); // 5
    c *= a;     printf("c = %d\n", c); // 25
    c /= a;     printf("c = %d\n", c); // 5
    c %= a;     printf("c = %d\n", c); // 0
    return 0;
}

Вывод

c = 5
c = 10
c = 5
c = 25
c = 5
c = 0

Операторы отношения в C

Оператор отношения проверяет отношение между двумя операндами. Если отношение истинно — возвращает 1, если ложно — 0. Используются в принятии решений и циклах.

ОператорЗначениеПример
==Равно5 == 3 → 0
>Больше5 > 3 → 1
<Меньше5 < 3 → 0
!=Не равно5 != 3 → 1
>=Больше или равно5 >= 3 → 1
<=Меньше или равно5 <= 3 → 0

Пример 4: Операторы отношения

// Работа операторов отношения
#include <stdio.h>
int main() {
    int a = 5, b = 5, c = 10;
    printf("%d == %d is %d \n", a, b, a == b);
    printf("%d == %d is %d \n", a, c, a == c);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d > %d is %d \n", a, c, a > c);
    printf("%d < %d is %d \n", a, b, a < b);
    printf("%d < %d is %d \n", a, c, a < c);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d != %d is %d \n", a, c, a != c);
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d >= %d is %d \n", a, c, a >= c);
    printf("%d <= %d is %d \n", a, b, a <= b);
    printf("%d <= %d is %d \n", a, c, a <= c);
    return 0;
}

Вывод

5 == 5 is 1
5 == 10 is 0
5 > 5 is 0
5 > 10 is 0
5 < 5 is 0
5 < 10 is 1
5 != 5 is 0
5 != 10 is 1
5 >= 5 is 1
5 >= 10 is 0
5 <= 5 is 1
5 <= 10 is 1

Логические операторы в C

Выражение с логическим оператором возвращает 0 или 1 в зависимости от истинности. Широко используются в принятии решений.

ОператорЗначениеПример
&&Логическое И. Истина, только если все операнды истинныc=5, d=2: ((c==5) && (d>5)) = 0
||Логическое ИЛИ. Истина, если хотя бы один операнд истиненc=5, d=2: ((c==5) || (d>5)) = 1
!Логическое НЕ. Истина, только если операнд равен 0c=5: !(c==5) = 0

Пример 5: Логические операторы

// Работа логических операторов
#include <stdio.h>
int main() {
    int a = 5, b = 5, c = 10, result;
    result = (a == b) && (c > b);
    printf("(a == b) && (c > b) is %d \n", result);
    result = (a == b) && (c < b);
    printf("(a == b) && (c < b) is %d \n", result);
    result = (a == b) || (c < b);
    printf("(a == b) || (c < b) is %d \n", result);
    result = (a != b) || (c < b);
    printf("(a != b) || (c < b) is %d \n", result);
    result = !(a != b);
    printf("!(a != b) is %d \n", result);
    result = !(a == b);
    printf("!(a == b) is %d \n", result);
    return 0;
}

Вывод

(a == b) && (c > b) is 1
(a == b) && (c < b) is 0
(a == b) || (c < b) is 1
(a != b) || (c < b) is 0
!(a != b) is 1
!(a == b) is 0

Пояснение


Побитовые операторы в C

Во время вычислений математические операции преобразуются к битровому уровню, что ускоряет обработку и экономит энергию. Побитовые операторы выполняют битровые операции.

ОператорЗначение
&Побитовое И
|Побитовое ИЛИ
^Побитовое исключающее ИЛИ (XOR)
~Побитовое дополнение (НЕ)
<<Сдвиг влево
>>Сдвиг вправо

Подробнее: побитовые операторы в C.

Другие операторы


Оператор запятая

Связывает связанные выражения вместе. Например:

int a, c = 5, d;

Оператор sizeof

sizeof — унарный оператор, возвращающий размер данных (констант, переменных, массивов, структур и т.д.).

Пример 6: Оператор sizeof

#include <stdio.h>
int main() {
    int a; float b; double c; char d;
    printf("Size of int = %zu bytes\n", sizeof(a));
    printf("Size of float = %zu bytes\n", sizeof(b));
    printf("Size of double = %zu bytes\n", sizeof(c));
    printf("Size of char = %zu byte\n", sizeof(d));
    return 0;
}

Вывод

Size of int = 4 bytes
Size of float = 4 bytes
Size of double = 8 bytes
Size of char = 1 byte

Другие операторы — тернарный ?:, оператор ссылки &, разыменования * и выбор члена -> — будут рассмотрены в следующих руководствах.

Язык C

  1. Основы программирования микропроцессоров
  2. Операторы C# — исчерпывающее руководство по операторам в C#
  3. Освоение побитовых и сдвиговых операторов в C#: полное руководство
  4. Освоение пространств имен в C#: организация, область видимости и лучшие практики
  5. Освоение операторов C++: полное руководство с практическими примерами
  6. Как передавать массивы в функции в C++: практическое руководство
  7. Четыре проверенных паттерна пользовательских функций в C
  8. Мастерство операторов Python: Полное руководство
  9. Освоение операторов Java: типы, синтаксис и практические примеры
  10. Освоение программирования на C: подробное руководство для начинающих