Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования на языке C_4.docx
Скачиваний:
44
Добавлен:
25.03.2016
Размер:
299.55 Кб
Скачать

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

Тип операнда - те же, что и для ++. Тип результата - те же, что и для ++.

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

--iv

Уменьшение iv на 1. Значением этого выражения является значение iv после уменьшения.

Пример:

i=--j;

Операция уменьшения (постфиксная): --

Тип операнда - те же, что и для ++ (постфиксная).

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

iv--

Уменьшение iv на 1. Значением этого выражения является значение iv до уменьшения.

Пример:

j=i--;

Операция определения требуемой памяти в байтах: sizeof

Тип операнда - значение любого типа или имени типа. Тип результата - unsigned. Используется как sizeof (выражение) или sizeof (имя типа).

Пример:

n=sizeof(arname)/sizeof(int);

Число элементов в массиве целых чисел, определяемое как число байт в массиве, поделенное на число байт, занимаемых одним элементом массива.

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

Мультипликативные операции. Порядок выполнения мультипликативных операций - слева направо.

Операция умножения: *

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

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

ae1*ae2

Произведение значений ae1*ae2.

Пример:

z=35*5;

Операция деления: /

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

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

ae1/ae2

Частное от деления ae1 на ae2.

Пример:

i=j/7;

Операция получения остатка: %

Тип операндов - интегральный. Тип результата int, unsigned, long. Знак остатка машинно-зависим.

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

ae1%ae2

Остаток от деления по модулю.

Пример:

j=i%2;

Если i четное число, то j равно нулю.

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

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

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

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

  1. арифметический;

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

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

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

ae1+ae2

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

Пример 1:

i=i+100;

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

Пример 2:

last=arname+arsize-1;

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

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

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

  1. арифметический;

  2. один операнд - указатель, другой - интегрального типа;

  3. операнды - указатели одного типа.

В первом случае тип результата: int, unsigned, long, double. Во втором случае тип результата - указатель. До вычитания значение целого операнда умножается на величину элемента данных, тип которых соответствует типу указателя. В третьем случае тип результата - 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;