Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec02 1213 nav.doc
Скачиваний:
3
Добавлен:
16.11.2019
Размер:
164.86 Кб
Скачать
    1. Выражения и операции

Выражения состоят из операндов, знаков операций и скобок. Результатом выражения является значение определенного типа. Знаки операций определяют действия, которые должны быть выполнены над операндами. Каждый операнд в выражении может быть выражением (или его частным случаем – константой или переменной).

Операции в выражении выполняются в соответствии с их приоритетом. Для изменения порядка выполнения используют круглые скобки.

Если в выражении подряд записаны несколько операций одного приоритета, то: унарные операции, условная операция и операции присваивания выполняются справа налево, все остальные операции – слева направо.

Основные операции языка C/C++

Операция

Описание

Унарные операции

&

Получение адреса операнда

*

Операция разыменования (обращение по адресу ссылки)

Арифметическое отрицание (унарный минус)

+

Унарный плюс

++

Увеличение на 1 (инкремент)

– –

Уменьшение на 1 (декремент)

!

Логическое отрицание (НЕ)

sizeof

Определение размера

(тип)

Приведение типа

Бинарные операции

мультипликативные операции

*

Умножение

/

Деление

%

Остаток от деления

аддитивные операции

+

Сложение

Вычитание

Операции сдвигов

<<

Сдвиг влево

>>

Сдвиг вправо

Поразрядные операции

&

Поразрядное И

^

Поразрядное исключающее ИЛИ

|

Поразрядное ИЛИ

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

&&

Логическое И

||

Логическое ИЛИ

Операции отношений

<

Меньше

<=

Меньше или равно

>

Больше

>=

Больше или равно

= =

Равно

!=

Не равно

? :

Условная операция (тернарная)

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

=

Обычное присваивание

*=

Умножение с присваиванием

/=

Деление с присваиванием

%=

Остаток от деления с присваиванием

+=

Сложение с присваиванием

– =

Вычитание с присваиванием

<<=

Сдвиг влево с присваиванием

>>=

Сдвиг вправо с присваиванием

&=

Поразрядное И с присваиванием

|=

Поразрядное ИЛИ с присваиванием

^=

Поразрядное исключающее ИЛИ с присваиванием

,

Последовательное вычисление (несколько выражений, разделенных запятыми вычисляются последовательно слева направо, результатом будет значение самого правого выражения)

Операции выбора компонентов структурированного объекта

. (точка)

Прямой выбор компонента структуры

–>

Косвенный выбор компонента структурированного объекта, адресуемого указателем.

Примечания

1 Операции сдвига, увеличения (уменьшения) на 1, поразрядные операции, остаток от деления применяются только для целочисленных операндов.

2 В качестве операнда для операций ++ и – – можно использовать только L-значения (леводопустимые выражения).

  1. Операции ++ и – – могут использоваться в префиксной форме (изменение операнда до его использования) или постфиксной форме (изменение операнда после его использования).

Примеры: ++w – префиксная форма; w++ - постфиксная форма.

То есть, если заданы целые числа x=16, y=9,

то при вычислении выражения z=x++-y вначале вычисляется x-y, затем x++, в результате получим: z=7, x=17,

а при вычислении выражения z=++x-y вначале вычисляется ++x, а затем x-y, в результате получим: z=8, x=17

4 Для всех составных операций присваивания форма присваивания E1 оп=E2 эквивалентна форме E1=E1 оп E2, где оп – обозначение операции.

Приоритет операций в C/C++

Ранг

Операции

Тип операции

Порядок выполнения

1

( ) [ ] –> .

Выражение

слева направо

2

+ – ! * ++ – – sizeof приведение типа

Унарные

справа налево

3

* / %

Мультипликативные бинарные

слева направо

4

+ –

Аддитивные бинарные

5

<< >>

Поразрядный сдвиг

6

< <= >= >

Отношения

7

= = !=

Отношения

8

&

Поразрядное И

9

^

Поразрядное ИЛИ

10

|

Поразрядное исключающее ИЛИ

11

&&

Логическое И

12

||

Логическое ИЛИ

13

?:

Условная операция

слева направо

14

= *= /= %= += – = &= ^= |= <<= >>=

Присваивание

слева направо

15

,

Последовательное вычисление

слева направо

Примечание – У операций с меньшим рангом приоритет выше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]