![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Арифметические операции
К арифметическим операциям относятся операции сложения (+), вычитания (–), умножения (*), деления (/) и деления по модулю (%) – вычисление остатка от деления. В языке отсутствует операция возведения в степень. В одном и том же выражении могут встретиться переменные и константы разных типов, в этом случае они преобразуются к старшему типу в соответствии с приоритетами типов, установленными в языке C: long double – double – float – unsigned long – long – unsigned int – int – unsigned char – char. В этом перечислении наивысший приоритет имеет типlong double. Компилятор преобразует “меньший” тип в “больший”. Например, если в выражении операнды имеют типыlong double, double, floatи т. д., то все они на время вычислений автоматически преобразуются к старшему типу. В данном случае это будет типlong double. Тип результата будет соответствовать старшему типу в выражении. Отметим, что в соответствии с правилами выполнения вычислений в C при делении двух операндов целого типа результат также является целочисленным и формируется путем отбрасывания дробной части частного от деления: 4/7=0; 7/4=1. Деление по модулю выполняется над операндами целого типа и результатом операции является остаток от деления: 7%4=3; 4%7=0. Приоритеты арифметических операций:
Операции одного уровня выполняются слева направо. Помимо стандартных арифметических операций используются две дополнительных операции: инкремент (++) и декремент (– –). Результатом выполнения инкремента будет увеличение значения операнда на 1, результат декремента – уменьшение операнда на 1. Обе операции идентичны, поэтому рассмотрим на примере только операцию инкремента (увеличения). Операция инкремента реализуется в двух видах: ++х; x++; аналогично декремент: ––х; x––; где х – идентификатор переменной. Строго говоря, ограничений на тип переменной нет, но реально эти операции работают с переменными целого типа. Результатом операции является увеличение значения переменной хна 1, причем в первом случае х сначала увеличивается на 1, а затем используется в дальнейших операциях, а во втором – значение х сначала используется, а потом увеличивается на 1. Различие операций сказывается при использовании их в сложных выражениях. Например, определить значения x, t, z, y после вычисления выражений при х=1, t=1: y=++x; z=t++; Ответ: x=2; t=2; z=1; y=2. Дополнительные арифметические операции используются, в основном, для организации счетчиков в циклах и имеют следующие ограничения:
Данные операции имеют более высокий приоритет по сравнению с другими арифметическими операциями.
|