Читайте также: |
|
Арифметические операторы используются для выполнения арифметических операций над константами и переменными. Комбинация переменных, числовых констант и вызовов функций, объединенных арифметическими операторами, называется арифметическим выражением.
Результат вычисления арифметического выражения может быть присвоен переменной с помощью оператора присваивания – символа "=", например, i=x.
Арифметические операторы языка C приведены в табл. 3.1.6.
Табл. 3.1.6. Арифметические операторы языка C
Оператор | Действие |
+ | Присваивание переменной положительного значения. |
- | Присваивание переменной отрицательного значения. |
+ | Сложение. |
- | Вычитание. |
* | Умножение. |
/ | Деление. |
% | Определение остатка от деления целых чисел. |
++ | Увеличение значения переменной на единицу. |
-- | Уменьшение значения переменной на единицу. |
Операции присваивания переменной положительного и отрицательного значения, а также операции инкремента и декремента выполняются над одним операндом и поэтому эти операции часто называют унарными операциями. Остальные арифметические операции являются бинарными, поскольку они выполняются над двумя операндами.
Операции сложения, вычитания, умножения и деления выполняются так же, как и в математике, однако деление целых чисел сопровождается отбрасыванием дробной части числа.
Операция вычисления остатка от деления (операция "%") определена только для целых чисел. Эта операция возвращает остаток от деления первого числа на второе, причем результат будет иметь тот же знак, что и делимое, например, результат операции 5%3 будет равен 2, а результат операции
(-7)%(-4)
будет равен -3.
Знаки операции инкремента и декремента могут размещаться как до, так и после переменной. Эти варианты называются соответственно префиксной и постфиксной записью этой операции. Знак операции в префиксной записи возвращает значение своего операнда после вычисления выражения. При постфиксной записи знак операции сначала возвращает значение своего операнда и только после этого вычисляет инкремент или декремент, например:
int x = 1, y, z;
y = ++x;
z=x++;
Переменной y будет присвоено значение 2, поскольку сначала значение x будет увеличено на 1, а затем результат будет присвоен переменной y. Переменной z будет присвоено значение 1, поскольку сначала переменной z будет присвоено значение, а затем значение x будет увеличено на 1. В обоих случаях новое значение переменной x будет равно 2.
Операции в выражении выполняются слева направо с учетом общепринятого старшинства арифметических операций. Порядок выполнения операций можно изменить, как и в математике, с помощью скобок.
Операции в арифметическом выражении выполняются слева направо, однако в C, как и в других языках программирования существует приоритетность выполнения операций, т.е. одни операции в арифметическом выражении выполняются раньше других, независимо от их места в выражении.
Наибольший приоритет в арифметическом выражении имеют унарные операции. Более низкий приоритет имеют операции умножения, деления и взятия модуля, и, наконец, последними в выражении выполняются операции сложения и вычитания. Для изменения порядка вычисления арифметических выражений используются круглые скобки (скобки могут быть вложенными).
Так, в выражении:
x = a+b*c;
сначала будет вычислено выражение b*c, а затем сумма значения переменной a и значения вычисленного выражения, поскольку приоритет операции умножения выше, чем приоритет операции сложения. В выражении
x = (a+b)*c;
сначала будет вычислена сумма значений a и b (поскольку они заключены в скобки), а затем полученный результат будет умножен на значение переменной c.
Примеры арифметических выражений и операции присваивания:
speed = 5.5;
time = 4;
distance = speed * time;
distance = (speed ++)*time;
x =(a+b)/y;
В языке Cоператор присваивания может быть простым (символ "=") или составным(знак операции и символ "=" и). В последнем случае запись:
переменная знак-операции = выражение
эквивалентна следующей записи
переменная = переменная знак-операции (выражение)
Например, запись x*=y+1 эквивалентна записи x=x*(y+1).
Дата добавления: 2014-12-19; просмотров: 41 | Поможем написать вашу работу | Нарушение авторских прав |