Логические операции
Логические операции служат для построения сложных условий, подобных приведенному в предыдущем параграфе. В языке Си определены следующие логические операции:
! логическое отрицание (одноместная),
&& логическое "и" (двуместная),
|| логическое "или" (двуместная).
В отличие от битовых операций, логические операции выполняются не над битами, а над значениями операндов. Результаты логических операций определяются следующей таблицей:
Результаты логических операций
| op1 | op2 | !op1 | op1 && op2 | op1 || op2 |
| не 0 (1) | ||||
| не 0 (1) | не 0 (1) | не 0 (1) | ||
| не 0 (1) | не 0 (1) | |||
| не 0 (1) | не 0 (1) | не 0 (1) | не 0 (1) |
Логические операции выполняются слева направо, причем для двуместных операций второй операнд может не вычисляться, если значение первого операнда однозначно определяет значение операции. Это происходит в том случае, если первый операнд для && равен 0 (результат операции тоже 0) и если первый операнд для || не 0 (результат операции тоже не 0).
Операция определения размера данных
В некоторых случаях совершенно необходимо иметь возможность определять размеры данных, создаваемых пользователем. Это позволяет писать программы, независимые от компьютера, на котором они выполняются, а также упростить процедуру внесения корректировок в программы. Для определения размера данных в языке Си используется операция sizeof. Первая форма операции выглядит следующим образом:
"sizeof(" тип ")"
Результат этой формы операции - размер данного соответствующего типа в байтах, например, sizeof(float) даст в результате 4.
Вторая форма операции выглядит следующим образом:
"sizeof " имя_данного
Результат этой формы операции - размер памяти, отведенной под соответствующее данное в байтах, например, после описания массива символов char name[40];, операция sizeof name даст в результате 40.
Приоритеты операций
Приоритеты и направление рассмотренных выше операций сведены в следующую таблицу. Операции одинакового приоритета объединены в группы, чем выше положение группы в таблице, тем выше приоритет операций группы.
Таблица приоритетов рассмотренных выше операций
| Операции одного приоритета | Направление выполнения операции. |
| ! ~ ++ -- (тип) sizeof |
|
| * / % |
|
| + - |
|
| << >> |
|
| < <= > >= |
|
| == != |
|
| & |
|
| ^ |
|
| | |
|
| && |
|
| || |
|
| = *= /= %= += -= <<= >>= &= ^= |= |
|
Дата добавления: 2016-03-10; просмотров: 556;
