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