Логические операции
Логические операции служат для построения сложных условий, подобных приведенному в предыдущем параграфе. В языке Си определены следующие логические операции:
! логическое отрицание (одноместная),
&& логическое "и" (двуместная),
|| логическое "или" (двуместная).
В отличие от битовых операций, логические операции выполняются не над битами, а над значениями операндов. Результаты логических операций определяются следующей таблицей:
Результаты логических операций
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; просмотров: 485;