Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Основы программирования на Си.doc
Скачиваний:
361
Добавлен:
02.05.2014
Размер:
1.3 Mб
Скачать

Операции, уровень приоритета которых равен 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. Выполняются эти операции слева направо.

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

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

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

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

Тип результата: 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;