 
        
        - •Часть 1. Структурное программирование
- •Екатеринбург
- •Введение
- •Состав языка Алфавит языка
- •Идентификаторы
- •Зарезервированные (ключевые) слова
- •Знаки операций
- •Константы
- •Комментарии
- •Типы данных
- •Основные типы данных
- •Структура программы
- •Переменные и выражения Переменные
- •Операции
- •Примеры операций
- •Выражения
- •Функции ввода-вывода Основные функции ввода-вывода в стиле с
- •Спецификации формата
- •Модификаторы формата
- •Операторы Оператор "выражение"
- •Условный оператор if
- •Оператор switch
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметром for
- •Операторы передачи управления Оператор безусловного перехода
- •Инициализация указателей
- •Операции с указателями
- •Массивы Одномерные массивы
- •Динамические массивы
- •Многомерные массивы
- •Задание Написать программу, вычисляющую среднее арифметическое для каждого столбца и каждой строки двумерного числового массива a[4, 5]. Строки
- •Типы данных, определенные пользователем
- •Переименование типов
- •Перечисления
- •Структуры
- •БиблиогрАфичеСкий список
- •ОглавлеНие
- •Часть 1. Структурное программирование
- •620002, Екатеринбург, ул.Мира, 19
- •620002, Екатеринбург, ул.Мира, 19
Операции
В соответствии с количеством операндов, которые используются в операциях, они делятся на унарные, бинарные и тернарную операции.
В следующей таблице приводятся основные операции в порядке убывания приоритетов (операции с разными приоритетами разделены чертой).
Основные операции С++
| Операция | Описание | 
| 1 | 2 | 
| Унарные операции | |
| ++ | увеличение на 1 | 
| -- | уменьшение на 1 | 
| sizeof | размер данного в байтах | 
| ~ | поразрядное отрицание | 
| ! | логическое отрицание | 
| - | унарный минус | 
| + | унарный плюс | 
| & | взятие адреса | 
Продолжение таблицы
| 1 | 2 | 
| * | разадресация | 
| new | выделение памяти | 
| delete | освобождение памяти | 
| (type) | преобразование типов | 
| Бинарные операции и тернарная операция | |
| * | умножение | 
| / | деление | 
| % | остаток от деления | 
| + | сложение | 
| - | вычитание | 
| << | сдвиг влево | 
| >> | сдвиг вправо | 
| < | меньше | 
| <= | меньше или равно | 
| > | больше | 
| >= | больше или равно | 
| == | равно | 
| != | не равно | 
| & | поразрядная конъюнкция (и) | 
| ^ | поразрядное исключающее или | 
| | | поразрядная дизъюнкция (или) | 
| && | логическое и | 
| || | логическое или | 
| ? : | условная операция (тернарная) | 
| = | присваивание | 
Окончание таблицы
| 1 | 2 | 
| *= | умножение с присваиванием | 
| /= | деление с присваиванием | 
| %= | остаток от деления с присваиванием | 
| += | сложение с присваиванием | 
| -= | вычитание с присваиванием | 
| <<= | сдвиг влево с присваиванием | 
| >>= | сдвиг вправо с присваиванием | 
| &= | поразрядное и с присваиванием | 
| |= | поразрядное или с присваиванием | 
| = | поразрядное исключающее или с присваиванием | 
| , | последовательное выполнение | 
Примеры операций
Операции увеличения и уменьшения на единицу (++ и --) имеют две формы записи: префиксную (операция записывается перед операндом) и постфиксную (операция записывается после операнда). В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения; в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется:
...
int x = 3, y = 3;
printf ("Значение префиксного выражения: % d \ n", ++ x);
printf ("Значение постфиксного выражения: % d \ n", y ++ );
...
На экране:
Результат префиксного значения: 4
Результат префиксного значения: 3
Операция определения размера sizeof предназначена для вычисления размера объекта или типа в байтах и имеет две формы:
sizeof выражение
sizeof (тип)
Операция sizeof (float) вернет значение 4 (длина в байтах типа float).
Операция sizeof (х + 0.1) вернет значение 8 (если х описана как float) − эта величина получается потому, что вещественные константы по умолчанию описываются как double, т. е. имеют длину 6 байтов.
Операции присваивания могут использоваться в программах как законченные операции. В сложных операциях присваивания (+=, -= и т.д.) при вычислении значения в правой части используется значение из левой части:
...
int a = 3, b = 5, c =4;
c = b + c;
a += b; // это более компактная запись a = a + b
...
Условная операция ? : − это тернарная операция. Ее формат:
операнд_1 ? операнд_2 : операнд_3
Первый операнд оценивается с точки зрения эквивалентности его нулю (операнд, равный нулю, оценивается как false, не равный нулю − как true). Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение операнда 2, иначе − операнда 3. Условная операция является сокращенной формой оператора if.
Пример
int a = 11, b = 4, max;
max = (b > a)? b : a;
printf ("Наибольшее число: % d", max);
На экране будет напечатано:
Наибольшее число: 11
