Фраза "Структурная переменная описывается с помощью переменной структурного типа" на мой Взгляд является тафтология. Из нее сложно понять суть утверждения. Хотелось бы полке понятного описания. |
Операции
Операция, уровень приоритета которой равен 8
Уровень приоритета операции поразрядное И равен 8. Выполняются такие операции слева направо.
Операция поразрядное И: &
Тип операндов - интегральный. Тип результата: int, long, unsigned.
Использование:
ie1 & ie2
Побитовая операция И двоичных представлений ie1 и ie2. Значение выражения содержит 1 во всех разрядах, в которых и ie1 и ie2 содержат 1, и 0 во всех остальных разрядах.
Пример:
flag=((x&mask)!=0);
Операция, уровень приоритета которой равен 9
Уровень приоритета операции поразрядное исключающее ИЛИ равен 9. Порядок выполнения таких операций слева направо.
Операция поразрядное исключающее или: ^
Тип операндов - интегральный. Тип результата: int, long, unsigned.
Использование:
ie1^ie2
Побитовая операция исключающее ИЛИ двоичных представлений ie1 и ie2. Значение выражения содержит 1 в тех разрядах, в которых и ie1 и ie2 имеют разные двоичные значения, и 0 во всех остальных разрядах.
Пример:
diffbits=x^y;
Операция, уровень приоритета которой равен 10
Уровень приоритета операции поразрядное включающее ИЛИ равен 10, порядок выполнения таких операторов - слева направо.
Операция поразрядное включающее или: |
Тип операндов - интегральный. Тип результата: int, long, unsigned.
Использование:
ie1 | ie2
Побитовая операция ИЛИ двоичных представлений ie1 и ie2. Значение выражения содержит 1 во всех разрядах, в которых ie1 или ie2 содержат 1, и 0 во всех остальных разрядах.
Пример:
attrsum=attr1 | attr2;
Операция, уровень приоритета которой равен 11
Уровень приоритета логической (условной) операции и равен 11. Выполняется операция слева направо.
Операция логическое И: &&
Тип операндов - арифметический или указатель. Тип результата - int. Если первый операнд равен 0, то результат равен 0. В противном случае результат будет равен 1, если второй операнд не равен 0, и равен 0, если второй операнд равен 0 (если первый операнд равен 0, то второй операнд не вычисляется).
Использование:
e1&&e2
Логическая операция И значений e1 и e2. Вначале проверяется значение e1 ; значение e2 проверяется только в том случае, если значение e1 - Истина. Значением выражения является Истина, если значения e1 и e2 - Истина.
Пример:
if(p!=NULL&&*p>7) n++;
Если p - ненулевой указатель и значение переменной, на которую указывает p, больше, чем 7, то в этом случае n увеличивается на 1. Обратите внимание, что если значение указателя p равно NULL ( 0 ), то выражение *p не имеет смысла.
Операция, уровень приоритета которой равен 12
Уровень приоритета операции равен 12, выполняются такие операции слева направо.
Операция логическое ИЛИ: ||
Тип операндов - арифметический или указатель. Тип результата int. Если хотя бы один операнд не равен 0, результат равен 1 ; иначе результат будет равен 0.
Использование:
e1 || e2
Логическая операция ИЛИ значений e1 и e2. Вначале проверяется значение e1 ; значение e2 проверяется только в том случае, если значение e1 - ложь. Значением выражения является Истина, если истинно любое значение e1 или e2.
Пример 1:
if(x<A || x>B) printf("out of range");