мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| c:c_ultimate_guide:operators [2025/10/09 13:45] – radi0dev | c:c_ultimate_guide:operators [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 35: | Строка 35: | ||
| Унарный оператор: | Унарный оператор: | ||
| * '' | * '' | ||
| + | |||
| + | ===== Операторы присвоения ===== | ||
| + | |||
| + | |||
| + | представляют из себя сокрашенные выражения | ||
| + | |||
| + | ++++список| | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''/ | ||
| + | * '' | ||
| + | * ''<< | ||
| + | * ''>> | ||
| + | * ''& | ||
| + | * '' | ||
| + | * '' | ||
| + | ++++ | ||
| + | |||
| + | ===== Операторы сдвига ===== | ||
| + | |||
| + | Каждое целое число в памяти представлено в виде определенного количества разрядов. И операции сдвига позволяют сдвинуть битовое представление числа на несколько разрядов вправо или влево. Операции сдвига применяются __только к целочисленным__ операндам. | ||
| + | |||
| + | * ''<<'' | ||
| + | * ''>>'' | ||
| + | |||
| + | <code c> | ||
| + | int a = 2 << 2; // 0b10 на два разрядов влево = 0b1000 = 8 | ||
| + | int b = 16 >> 3; // 0b10000 на три разряда вправо = 0b10 = 2 | ||
| + | </ | ||
| + | |||
| + | ===== Поразрядные операции ===== | ||
| + | |||
| + | Поразрядные операции также проводятся только над разрядами __целочисленных__ операндов. | ||
| + | |||
| + | * ''&'' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | <code c> | ||
| + | int a = 5 | 2; // 0b101 | 0b010 = 0b111 = 7 | ||
| + | int b = 6 & 2; // 0b110 & 0b010 = 0b10 = 2 | ||
| + | int c = 5 ^ 2; // 0b101 ^ 0b010 = 0b111 = 7 | ||
| + | |||
| + | int f = 12; // 0b00001100 | ||
| + | int d = ~f; // 0b11110011 или -13 | ||
| + | </ | ||
| ===== Преобразования типов ===== | ===== Преобразования типов ===== | ||
| Строка 94: | Строка 143: | ||
| </ | </ | ||
| + | ===== Приоритет и очередность ===== | ||
| + | ^ Операторы ^ Выполняются ^ | ||
| + | |%% () [] -> . %%| слева направо | | ||
| + | |%% ! ~ ++ -- + - * & (тип) sizeof %%| справа налево | | ||
| + | |%% * / % %%| слева направо | | ||
| + | |%% + - %%| слева направо | | ||
| + | |%% << >> %%| слева направо | | ||
| + | |%% < <= > >= %%| слева направо | | ||
| + | |%% == != %%| слева направо | | ||
| + | |%% & %%| слева направо | | ||
| + | |%% ^ %%| слева направо | | ||
| + | |%% | %%| слева направо | | ||
| + | |%% && %%| слева направо | | ||
| + | |%% || %%| слева направо | | ||
| + | |%% ?: %%| справа налево | | ||
| + | |%% = += -= *= /= %= &= ^= |= <<= >>= %%| справа налево | | ||
| + | |%% , %%| слева направо | | ||
| + | |||
| + | < | ||
| + | Примечание. Унарные операторы +, -, * и & имеют более высокий приоритет, | ||
| + | операторы. | ||
| + | </ | ||