Вівторок, 19.03.2024, 08:05
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Яка мова вам ближче?
Всього відповідей: 11
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Операции, уровень приоритета которых равен 4

Уровень приоритета аддитивных операций равен 4. Выполняются эти операции слева направо.

 
Операция сложения: +

Тип операндов:

 
  1. арифметический;
  2. один операнд указатель, другой - интегрального типа; оба операнда не могут быть указателями.
 

Тип результата: intunsignedlongdouble, указатель. Перед сложением значение целого операнда умножается на величину элемента данных, тип которых соответствует типу указателя.

 

Использование:

 
ae1+ae2
 

Сумма значений ae1 и ae2.

 

Пример 1:

 
i=i+100;
 

Первоначальное значение i увеличивает на 100.

 

Пример 2:

 
last=arname+arsize-1;
 

Присваивает переменной last адрес последнего элемента массива arname.

 
Операция вычитания: -

Тип операндов:

 
  1. арифметический;
  2. один операнд - указатель, другой - интегрального типа;
  3. операнды - указатели одного типа.
 

В первом случае тип результата: intunsignedlongdouble. Во втором случае тип результата - указатель. До вычитания значение целого операнда умножается на величину элемента данных, тип которых соответствует типу указателя. В третьем случае тип результата - int. Результат - число объектов, отделенных двумя указателями.

 

Арифметические действия с указателями. Арифметические действия с указателями отличаются от арифметических действий с обычными целыми значениями, и определяются следующим образом. Предположим, что i является целым выражением, а указатели p и q указывают на элементы типа Т. Сложение значения i и p эквивалентно сложению числа ячеек памяти в байтах, занятых i элементами типа Т. Аналогично определяется операция вычитания. Результат вычитания двух указателей типа Т является не разностью значений двух указателей, а числом элементов типа Т, размещенных между ячейками, ссылки на которые обеспечиваются указателями. Никакие другие арифметические действия с указателями не допускаются. Вычитание указателей имеет смысл только для указателей, ссылающихся на элементы одного и того же массива, поскольку только в этом случае разность адресов элементов массива всегда равна произведению целого значения на величину элемента.

 

Использование:

 
ae1-ae2
 

Разность значений ae1 и ae2.

 

Пример 1:

 
i=j-100;
 

Использование:

 
pe-ie
 

Адрес переменной типа pe, меньше на ie адреса, заданного указателем pe.

 

Пример 2:

 
first=last-arsize+1;
 

Использование:

 
pe1-pe2
 

Число переменных типа pe в диапазоне от pe2 до pe1.

 

Пример 3:

 
arsize=last-first;

Операции, уровень приоритета которых равен 5

Уровень приоритета операций сдвига равен 5. Порядок выполнения операций - слева направо.

 
Операция сдвига влево: <<

Тип операнда - интегральный. Тип результата - такой же, как у левого операнда. Правый операнд преобразуется к типу int. Левый операнд сдвигается на число разрядов, равное значению правого операнда. Освобождающие разряды заполняются нулями.

 

Использование:

 
ie1<<ie2
 

Двоичное представление ie1 сдвигается влево на ie2 разрядов, освобождающие разряды заполняются нулями.

 

Пример:

 
four=x<<2;
 
Операция сдвига вправо: >>

Тип операнда - интегральный. Тип результата - такой же, как у левого операнда. Правый операнд преобразуется к типу int. Левый операнд сдвигается на число разрядов, равное значению правого операнда. Сдвиг будет логическим сдвигом, если левыйоперанд имеет тип unsigned.

 

Использование:

 
ie1>>ie2
 

Двоичное представление ie1 сдвигается вправо на ie2 разрядов. Сдвиг вправо может быть арифметическим (т. е. освобождающиеся слева разряды заполняются значениями знакового разряда) или логическим в зависимости от реализации, однако гарантируется, что сдвиг вправо целых чисел без знака будет логическим и освобождающиеся слева разряды будут заполняться нулями.

 

Пример:

 
x=x>>3;
 

Операции, уровень приоритета которых равен 6

Уровень приоритета операций отношения равен 6. Выполняются эти операции слева направо.

 
Операция меньше: <

Тип операндов - арифметический или указатель. Тип результата - int.

 

Использование:

 
ae1<ae2
 

Истина, если ae1 меньше, чем ae2.

 

Пример:

 
if(x<0) printf("negative");
 
Операция больше: >

Тип операндов - арифметический или указатель. Тип результата - int.

 

Использование:

 
ae1>ae2
 

Истина, если ae1 больше, чем ae2.

 

Пример:

 
if(x>0) printf("positive");
 
Операция меньше или равно: <=

Тип операндов - арифметический или указатель. Тип результата - int.

 

Использование:

 
ae1<=ae2
 

Истина, если ae1 меньше или равно ae2.

 
Операция больше или равно: >=

Тип операндов - арифметический или указатель. Тип результата - int.

 

Использование:

 
ae1>=ae2
 

Истина, если ae1 больше или равно ae2.

 

 

 

Форма входа
Пошук
Друзі сайту
Календар
«  Березень 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Єдина Країна! Единая Страна!