Арифметические операции
Операции сложения, вычитания, умножения и деления можно использовать ко всем типам данных. Если операнды одного типа, то результат будет того же типа. Например, вычисляя выражение 12/5, так как операнды целые числа, то в результате получим целое число 2 (округление не выполняется). С другой стороны, если рассчитывается выражение 12./5, результатом будет вещественное число 2.4.
Операция деление по модулю используется при необходимости вычисления остатка от деления целых чисел, например, при вычислении выражения 17%3, результатом будет целое число 2.
Операции присваивания
Эти операторы имеют наименьший приоритет при вычислении выражений, т.е. выполняются в последнюю очередь (за исключением оператора запятая). В языке Си знак равенства означает выполнение операции присваивания. Например, выражение
x=10+3*4;
означает, что вначале вычисляется выражение слева от знака равенства и затем результат присваивается переменной x. Поэтому выражения
x=x+2;
приобретают при программировании строго определенный смысл: вначале вычисляется выражение справа от знака равенства (к старому значению переменной x прибавляется число 2) и затем полученный результат присваивается переменной x.
Оператор присваивания выполняется справа налево. В языке Си возможно использования выражений с несколькими операторами присваивания, например, допустимо использовать следующее выражение
с=b=5*(a=5*45);
Оно выполняется в следующем порядке: вычисляется значение 5*45, результат присваивается переменной ‘а’, затем эта переменная умножается на 5 и результат присваивается переменной ‘b’, и далее присваивается переменной ‘c’.
Помимо традиционной операции присваивания в языке Си существуют дополнительные операции: +=, –=, *= и т.п. Например, операции слева и справа в приведенной ниже таблице идентичны
a=a+10; | a+=10; |
a=a/10; | a/=10; |
a=a&64; | a&=10; |
a=a>>1; | a>>=1; |
Достоинства этих операции – они выполняются быстрее, чем операции с обычным присваиванием.
Пример 4.1
Пример использования арифметических операций и операций присваивания:
Листинг 4.1
#include <stdio.h>
void main()
{
int a=25,b=3,с,d;
float x=25.,y=3,z;
c=a/b;
d=a%b;
printf(“Деление целых чисел: %d\nОстаток: %d\n”,c,d);
z=x/y;
printf(“Деление вещественных чисел: %d %d\n”,c,d);
a=a+10;
y=y*3;
printf(“Традиционная форма операции присваивания: %d %f\n”,a,y);
a+=10;
y*=3;
printf(“Присваивание со сложение и умножением: %d %f”,a,y);
}
Результат выполнения программы:
Деление целых чисел: 8
остаток: 1
Деление вещественных чисел: 8.333333
Традиционная форма операции присваивания: 35 9.000000
Присваивание со сложение/умножением: 45 27.000000
Операции отношения
Эти операции позволяют сравнивать друг с другом данные, например:
x>0 y<=x z!=27 g==’\n’
Значения переменных после выполнения операции сравнения не изменяется, каждое выражения проверяется – истинно оно или ложно. В языке Си истинному значению выражения с операцией отношения соответствует единичный результат, ложному – нулевой. Например, выражение
y=x>5;
определяет значение переменной ‘у’ равным единице для ‘x’ равным 25 и равным нулю для ‘х’ равным –5.
Согласно табл. 4.1. наибольшим приоритетом обладает операции ‘<’ и ‘>’, наименьшими равенство и неравенство. Поэтому, например, выражение
(x>5 == y<10)
будет выполняться в следующем порядке:
– сравнение y<10;
– сравнение x>5;
– сравнение на равенство.
Дата добавления: 2016-07-27; просмотров: 1667;