
1.5. Сводка операций языка Си
Все операции языка Си разбиты на категории (табл. 1.6). Каждая операция имеет свой приоритет, который убывает с ростом категории. Все операции одной категории имеют одинаковый приоритет. Унарные операции (категория 2), условная (категория 14) и присваивания (категория 15) ассоциируются (выполняются) справа налево. Все остальные операции ассоциируются слева направо.
Таблица 1.6
Сводка операций языка Си
Категория |
Операция |
Название или действие |
1 |
( ) [ ]
: : |
Вызов функции Индексирование Косвенное обращение к члену класса Прямое обращение к члену класса |
2. Унарные |
. ! ~ + - + + - - & * size of new delete |
Прямое обращение к члену класса Логическое отрицание Дополнение до единицы Унарный плюс Унарный минус Преинкремент или постинкремент Предекремент или постдекремент Адрес Обращение Размер Создание динамического объекта Удаление |
3. Мультипликативные |
* / % |
Умножение Деление Деление по модулю |
4. Косвенное обращение |
. *
-> * |
Прямое косвенное обращение через указатель Косвенное обращение через указатель |
5. Аддитивные
|
+ - |
Бинарный плюс Бинарный минус |
6. Сдвига
|
<< >> |
Сдвиг влево Сдвиг вправо |
7. Отношения |
< <= > >= |
Меньше Меньше или равно Больше Больше или равно |
8. Равенства |
= = != |
Равно Не равно |
9. 10. 11. 12. 13. 14. |
& ^ | && || ? : |
Побитовое И Побитовое исключающее ИЛИ Побитовое включающее ИЛИ Логическое И Логическое ИЛИ Условия |
Как видно из приведенных таблиц, язык Си богат на операции. Знак операции – это символ или комбинация символов, которые сообщают компилятору о необходимости произвести определенные арифметические, логические или другие действия.
Для каждой операции определено количество операндов и определенный порядок выполнения:
один операнд – унарная операция, например унарный минус (-х), изменяющая знак;
два операнда - бинарная операция, например, операция сложения (x + y) или вычитания (x - y);
три операнда – операция условия ?:, такая операция только одна.
Каждая операция может иметь только определенные типы операндов. Например, операция побитового сдвига определена только для целочисленных операндов. Более подробно об операциях будет дано в следующих разделах.