- •Действия: что делает программа Глава 2 Выражения
- •Арифметические операторы
- •Замечание
- •Операторы отношений
- •Логические операторы
- •Оператор отрицания
- •Операторы инкремента и декремента
- •Поразрядные операторы
- •Поразрядный оператор исключающего или
- •Сдвиг битов влево
- •Дополнение до единицы
- •Сомр 44 0х002с 0000000000101100
- •Операторы присваивания
- •Выражения значений
- •Приоритеты операторов
Действия: что делает программа Глава 2 Выражения
Выражения — это операции, которые выполняют программы. Если valueA, valueB и valueC- — переменные типа int, то выражение
valueB + valueC
вычисляет сумму значений valueB и valueC. Результат выражения обычно присваивается какой-нибудь переменной с помощью оператора, аналогичного следующему:
valueA = valueB + valueC; I
После выполнения этого оператора значение valueA будет равно сумме значений valueB и valueC. Знак плюс — один из операторов языка С. Он указывает компилятору, какую операцию нужно выполнить над двумя операндами.
Язык С включает семь операторов, без которых не обходится практически ни одна программа. В следующих разделах познакомимся с арифметическими и логическими операторами, операторами отношений, отрицания, инкремента и декремента, а также операторами поразрядных операций, j
Арифметические операторы
Еще сидя за школьной партой, вы узнали, как обращаться с арифметическими операторами +, -, * и / (табл.2.1). В языке С эти операторы работают аналогичным образом. Может быть, только оператор деления по модулю (%) вам знаком не так хорошо. Оператор % используется для вычисления остатка от деления целых чисел. Например, значение выражения 24 % 11 (читается "24 по модулю 11") равно 2, т.е. остатку от целочисленного деления 24/11. Значение выражения 8 % 2 равно 0, так как 8 делится на 2 без остатка.
Таблица 2.1. Арифметические операторы
Оператор
|
Описание
|
Пример
|
*
|
Умножение
|
(а *. Ь)
|
/
|
Деление
|
(а / Ь)
|
+
|
Сложение
|
(а + Ь)
|
-
|
Вычитание
|
(а - Ь)
|
%
|
Деление по модулю
|
(а % Ь)
|
Листинг 2.1 содержит пример числовых выражений, использующих арифметические операторы. В примере выполняется преобразование значений градусов по Фаренгейту в градусы по Цельсию.
Листинг 2.1. CELSIUS.С (преобразование градусов по Фаренгейту в градусы по Цельсию)
_______________________________________________________________________
1: #include <stdio.h>
2: #include <stdlib.h>
3:
4: main()
5: {
6: double fdegrees, cdegrees;
7: char answer[128];
8:
9: printf("Fahrenheit to Celsius conversion\n\n");
10: printf("Degrees Fahrenheit? ");
11: gets(answer);
12: fdegrees = atof(answer);
13: cdegrees = ((fdegrees - 32.0) * 5.0) / 9.0;
14: printf("Degrees Celsius = %f\n", cdegrees);
15: return 0;
16: }
Программа использует две переменные с плавающей запятой типа double - fdegrees и cdegrees. После того как программа предложит ввести число, функция atof() преобразует строку answer в число с плавающей запятой, присвоив результат переменной fdegrees. Выражение
((fdegrees - 32.0) * 5.0)/ 9.0
вычисляет эквивалентную температуру в градусах по Цельсию. При этом наличие круглых скобок в выражении влияет на обычный порядок выполнения операций: прежде всех выполняются операции, заключенные во "внутренние" круглые скобки. В этом примере выражение вычисляется в такой последовательности:
1) 32.0 вычитается из fdegrees;
2) результат первого шага умножается на 5.0;
результат второго шага делится на 9.0.