Новосибирский Государственный Университет
Опубликован: 26.08.2005 | Доступ: свободный | Студентов: 17108 / 2712 | Оценка: 4.07 / 3.55 | Длительность: 13:11:00
ISBN: 978-5-9556-0057-4
Лекция 3:

Операции

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

Тип операндов - арифметический. Тип результата - 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;
Вадим Ратьков
Вадим Ратьков

Объясните, пожалуйста, чем отличаются два этих кода?

printf("смешанное деление: 7./4 это %2.2f \n", 7./4);

и

printf("смешанное деление: 7./4 это %f \n", 7./4);

%f  это, понятное дело, float. А что такое %2.2f ?

Вопрос возник при прочтении лекции 3 часть вторая курса Основы программирования на языке C.

http://www.intuit.ru/studies/courses/43/43/lecture/1281?page=2

Анна Алексанина
Анна Алексанина

Я хочу выполнить одну из программ, которые есть в лекции. Но для этого мне надо компилировать текст, а я не знаю, как это сделать. ОС Windows.

Александр Серый-Казак
Александр Серый-Казак
Россия
Максим Виноградов
Максим Виноградов
Россия, Москва