
Операции языка Си
Любое выражение языка состоит из операндов (переменных, констант и др.), соединенных знаками операций. Знак операции - это символ или группа символов, которые сообщают компилятору о необходимости выполнения определенных арифметических, логических или других действий.
Операции выполняются в строгой последовательности. Величина, определяющая преимущественное право на выполнение той или иной операции, называется приоритетом. В табл. 2 перечислены различные операции языка Си. Их приоритеты для каждой группы одинаковы (группы выделены цветом). Чем большим преимуществом пользуется соответствующая группа операций, тем выше она расположена в таблице. Порядок выполнения операций может регулироваться с помощью круглых скобок.
Таблица 2
Знак операции |
Назначение операции |
( ) |
Вызов функции |
[ ] |
Выделение элемента массива |
. |
Выделение элемента записи |
-> |
Выделение элемента записи |
! |
Логическое отрицание |
~ |
Поразрядное отрицание |
- |
Изменение знака |
++ |
Увеличение на единицу |
-- |
Уменьшение на единицу |
& |
Взятие адреса |
* |
Обращение по адресу |
(тип) |
Преобразование типа (т.е. (float) a) |
sizeof( ) |
Определение размера в байтах |
* |
Умножение |
/ |
Деление |
% |
Определение остатка от деления |
+ |
Сложение |
- |
Вычитание |
<< |
Сдвиг влево |
>> |
Сдвиг вправо |
< |
Меньше, чем |
<= |
Меньше или равно |
> |
Больше, чем |
>= |
Больше или равно |
= = |
Равно |
!= |
Не равно |
& |
Поразрядное логическое "И" |
^ |
Поразрядное исключающее "ИЛИ" |
| |
Поразрядное логическое "ИЛИ" |
&& |
Логическое "И" |
|| |
Логическое "ИЛИ" |
= |
Присваивание |
+=, - =, *=, /=, %=, <<=, >>=, &=, |=, ^= |
Составные операции присваивания (например, а *= b (т.е. a = a * b) и т.д.) |
, |
Операция запятая |
Стандартные математические функции находятся в файле math.H.
abs - абсолютное значение целого числа - |x|
int abs(int x);
labs - абсолютне значення "длинного" целого числа - |x|:
long labs(long x);
fabs - абсолютное значение числа с плавающей точкой - |x|:
double fabs(double x);
sqrt - извлечение квадратного корня:
double sqrt(double x);
pow - возведение в степень:
double pow(double x, double y);
tan - тангенс - tg x: (здесь и далее x задается в радианах):
double tan(double x);
cos - косинус - cos x
double cos(double x);
sin - синус - sin x:
double sin(double x);
exp - експонента :
double exp(double x);
log - натуральный логарифм - ln x:
double log(double x);
log10 - десятичный логарифм - log10x:
double log10(double x);
mod - вычисляет остаток от деления (в С операция - %)