Программирование на языке C
Модуль 2. ОПЕРАЦИИ
Арифметические операции
Операции присваивания
Операции отношения
Логические операции
Битовые операции
Дополнительные операции
Знаки и приоритет операций (начало)
Знаки и приоритет операций (окончание)
608.00K
Category: programmingprogramming

Программирование на языке С. Модуль 2. Операции

1. Программирование на языке C

1

2. Модуль 2. ОПЕРАЦИИ

Арифметические
Операции присваивания
Отношения
Логические операции
Битовые, адресные и прочие операции
Приоритеты и ассоциативность операций
Трассировка программы
Унарные
Бинарные
Тринарные
“-”
“-”
?:
2

3. Арифметические операции

Модуль 2. ОПЕРАЦИИ
Арифметические операции
• унарный плюс (+) и унарный минус (-)
• инкремент, декремент
префиксный ++a; постфиксный a++;
префиксный --b; постфиксный b--;
• умножение (*), деление (/) и деление по модулю (%)
• сложение (+) и вычитание (-)
Арифметические операции с присваиванием:
1.
a=a+b
a+=b
2.
a=a-b
a-=b
3.
a=a*b
a*=b
4.
a=a/b
a/=b
5.
a=a%b
a%=b
3

4. Операции присваивания

Модуль 2. ОПЕРАЦИИ
Операции присваивания
Формат :
Левая сторона = Правая сторона
Левая сторона – L-выражение, т.е. объект, которому может
быть присвоено значение. Правая сторона – выражение,
которое всегда преобразуется к типу левой стороны.
В Си допустимо многократное присваивание : a=b=c=0;
4

5. Операции отношения

Модуль 2. ОПЕРАЦИИ
Операции отношения
>
<
>=
<=
==
!=
- больше ли
- меньше ли
- больше ли или равно
- меньше ли или равно
- равно ли
- не равно ли.
int n = (7 > 2); // ???
5

6. Логические операции

Модуль 2. ОПЕРАЦИИ
Логические операции
&& - логическое И, логическое умножение, AND.
|| - логическое ИЛИ, логическое сложение, OR.
! - логическое НЕ, логическое отрицание, NOT.
x
y
x&&y
x||y
!x
x XOR y
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
6

7. Битовые операции

Модуль 2. ОПЕРАЦИИ
Битовые операции
&
Поразрядное И
|
Поразрядное ИЛИ
^
Поразрядное исключающее ИЛИ
<<
Сдвиг влево
Поразрядные
операции
Операции сдвига
>>
Сдвиг вправо
<<=
Сдвиг влево с присваиванием
>>=
Сдвиг вправо присваиванием
&=
Поразрядное И с присваиванием
|=
Поразрядное ИЛИ с присваиванием
^=
Поразрядное исключающее ИЛИ с
присваиванием
Операции
присваивания
7

8. Дополнительные операции

Модуль 2. ОПЕРАЦИИ
Дополнительные операции
Определение размера объекта
Для определения размера объекта
(переменной, результата выражения, типа)
используют встроенный оператор-функцию sizeof:
1 сп.
sizeof(<выражение>);
2 сп.
sizeof(<спецификатор типа>);
Возвращается число единиц памяти (как правило, байтов),
занимаемых объектом в памяти.
( ) - вызов функции
[ ] - операция индексации
(type) EXP - операция преобразования типа.
При выполнении операций происходят неявные
автоматические преобразования типов в следующих случаях:
- при выполнении операций осуществляются обычные
арифметические преобразования ;
- при выполнении операций присваивания, если значение
одного типа присваивается переменной другого типа;
- при передаче аргументов функции.
8

9.

Модуль 2. ОПЕРАЦИИ
Операция запятая
Выражения, разделенные запятой, вычисляются слева
направо, как части одного выражения. Тип и значение результата
совпадают с типом и значением правого выражения.
int c = 3;
X = c + 5, 21;
X = (c + 5, 21);
Операция условие
Формат
(Exp1) ? (Exp2) : (Exp3)
Пример
max= (x>y) ? x : y;
Если второй и третий операнд L-выражение, то
результат операции условие L-выражение:
(x>y) ? x : y = 1;
9

10. Знаки и приоритет операций (начало)

Модуль 2. ОПЕРАЦИИ
Знаки и приоритет операций (начало)
Приоритет
операций
Знаки операций
Порядок выполнения
операций с равным
приоритетом
1
( ) [ ] -> .
слева направо
2
! ~ + – ++ – – &
* (<имя типа>) sizeof
справа налево
3
* / %
слева направо
4
+ –
слева направо
5
<< >>
слева направо
6
< <= >= >
слева направо
7
== !=
слева направо
8
&
слева направо
9
^
слева направо
10

11. Знаки и приоритет операций (окончание)

Модуль 2. ОПЕРАЦИИ
Знаки и приоритет операций
(окончание)
Приоритет
операций
Знаки операций
Порядок выполнения
операций с равным
приоритетом
10
|
слева направо
11
&&
слева направо
12
||
слева направо
13
?:
справа налево
14
= *= /= %= += –=
&= ^= |= <<= >>=
справа налево
15
,
слева направо
11

12.

Список литературы
[КР92] Керниган Б., Ритчи Д. Язык программирования Си / Пер. с англ. — М.:
Финансы и статистика, 1992. — 272 с.
[КР06] Керниган Б., Ритчи Д. Язык программирования C / Пер. с англ. — М.:
Вильямс, 2006. — 304 с.
[Под04] Подбельский В.В., Фомин С.С. Программирование на языке Си. – 2-е
доп. изд. – М., Финансы и статистика, 2004. – 600 с.
12
English     Русский Rules