Модификаторы типов
За исключением типа void, основные типы данных могут иметь различные модификаторы. Модификаторы используются для более точного управления ситуацией. Ниже приведен список модификаторов: signed – знаковый, unsigned – беззнаковый, long - длинный, short- короткий.
Модификаторы signed и unsigned могут применяться к типам char и int. Модификатор long может так же применяться к типу double. Модификаторы signed и unsigned могут комбинироваться с модификаторами short и long в применении к типу int
С поддерживает несколько других типов, включая структуры, объединения, битовые поля, перечисления и типы, определяемые пользователем.
Типы данных
основные определяемые пользователем
int enum перечисляемых типов (enum)
long struct записей-структур (struct
short union объединение(union),
unsigned typedef
char
float
double
Операции сравнения и логические операции языка С. Приведите примеры.
Операторы отношения применимы для вычисления соотношений между операндами. Логические операторы, используя правила формальной логики, также возвращают соотношения между операндами. Поскольку операторы отношения и логические операторы часто применяются вместе, то мы рассмотрим их также вместе.
Ключевой концепцией операторов отношения и логических операторов является понятие истины и лжи. В С истине соответствует любое значение, кроме 0, а лжи — 0. Выражение, использующее операторы отношения или логические операторы, возвращают 0 для лжи и 1 для истины.
Операторы отношения |
||
Оператор |
Действие |
|
> |
Больше чем |
|
>= |
Больше чем или равно |
|
< |
Меньше чем |
|
<= |
Меньше чем или равно |
|
== |
Равно |
|
!= |
Не равно |
|
Логические операторы |
||
&& |
И |
|
|| |
ИЛИ |
|
! |
НЕ |
|
Таблица: Операторы отношения и логические операторы |
|
|
Таблица показывает операторы отношения и логические операторы.
Таблица истинности для логических операторов образована с использованием на входах 1 и 0:
P |
Q |
p&&q |
p||q |
!p |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Как операторы отношения, так и логические операторы имеют более низкий приоритет по сравнению с арифметическими операторами. Это означает, что выражение типа 10 > 1+12 вычисляется как 10 > (1 + 12). Результатом, естественно, будет ложь.
В выражении может объединяться несколько операторов, как показано ниже: 10 > 5 && 1(10 < 9) II 3 <= 4 в результате чего получаем истину.
Ниже показаны приоритеты выполнения операторов отношения и логических операторов:
Высший |
! > >= < <= && |
Низший |
|| |
Как и в арифметических выражениях, возможно использование круглых скобок для изменения естественного порядка вычисления операторов отношения или логических операторов. Например: ! 1 && 0 даст в результате 0, поскольку ! вычисляется первым, а затем вычисляется &&. Если в этом выражении поставить скобки следующим образом: ! (1 && 0) то получится истина.
Надо помнить, что все выражения с операторами отношения и логическими операторами дают в результате 0 или 1. Поэтому следующий фрагмент программы не только корректен, но и печатает число 1: int x; x = 100; printf("%d", x > 1);
