
- •Министерство образования и науки Российской Федерации
- •Содержание
- •1. Понятие алгоритма
- •1.1. Определение алгоритма
- •1.2. Гост на описание блок-схем
- •Использование символов
- •1.3. Виды алгоритмов
- •2. Языки программирования
- •2.1. Определение алгоритмического языка
- •2.2. Классификация языков. История развития языков программирования
- •2.3. Выбор языка программирования
- •2.5. Арифметические и логические основы программирования
- •3. Понятие системы программирования
- •3.1. Этапы создания программ
- •3.2. Конструирование программ
- •3.3. Методы, технологии и инструментальные средства производства программных продуктов
- •4.1. Литералы
- •4.2. Встроенные типы данных
- •Типы данных
- •4.3. Операции
- •Адресные операции
- •Операции преобразования знака
- •Побитовые операции
- •Операция определения размера
- •Операции увеличения и уменьшения значения
- •Операции динамического распределения памяти
- •Операция доступа
- •Аддитивные операции
- •Мультипликативные операции
- •Операции сдвига
- •Поразрядные операции
- •Операции сравнения
- •Логические бинарные операции
- •Операция присваивания
- •Специальные формы операций присваивания
- •Операции выбора компонентов структурированного объекта
- •Операции обращения к компонентам класса
- •Операция управления процессом вычисления значений
- •Операция вызова функции
- •Операция явного преобразования типа
- •Операция индексации
- •Приоритеты операций
- •4.5. Агрегатные типы данных
- •4.5.1. Массивы
- •4.5.2. Структуры
- •4.5.3. Поля битов
- •4.5.4. Объединения Используются для хранения значений различных типов в одной и той же области памяти, но не одновременно.
- •4.5.5. Перечисления
- •4.5.6. Переименование типов
- •Typedef имя ранее определенного типа имя нового типа1
- •Объявление typedef применяется для создания удобных распознаваемых имен часто встречающихся и для вложенных типов, а также, чтобы сделать программы переносимыми для различных целых типов.
- •4.6. Обработка символьных и строковых переменных
- •4.7. Указатели
- •4.7.1. Инициализация указателей
- •4.7.2. Операции с указателями
- •4.8. Пользовательские процедуры и функции
- •4.8.1. Перегрузка функций
- •4.8.2. Перегрузка операций
- •4.8.3. Шаблоны функций
- •4.8.4. Возврат из функции нескольких значений
- •4.9. Файлы
- •4.10. Директивы препроцессора
- •Библиографический список
Операции выбора компонентов структурированного объекта
К операциям выбора компонентов структурированного объекта относятся:
. Операция прямого выбора – точка
-> Операция косвенного выбора
Об этих операциях будет сказано позже, после определения понятия класса и объекта-представителя класса.
Операции обращения к компонентам класса
К операциям обращения к компонентам класса относятся:
. Операция обращения к компоненте класса по имени объекта или ссылки на объект (левый операнд операции) и указателю на компоненту класса (правый операнд операции). Например, student.year_birthday.
-> Операция обращения к компоненте класса по указателю на объект (левый операнд операции) и указателю на компоненту класса (правый операнд операции). Например, student->year_birthday.
:: Операция доступа к компоненте класса по имени класса и имени компоненты. Например, student::year_birthday.
Операция управления процессом вычисления значений
, Операция запятая. Например, A &= B, A * B, -A.
Группирует выражения слева направо. Разделённые запятыми выражения вычисляются последовательно слева направо, в качестве результата сохраняются тип и значение самого правого выражения.
Эта операция формально также является бинарной операцией, хотя операнды этой операции абсолютно не связаны между собой.
Операция вызова функции
() Операция вызова. Например, sin(x).
Играет роль бинарной операции при вызове функции. Левый операнд представляет собой выражение, значением которого является адрес функции. Правый операнд является разделённым запятыми списком выражений, определяющих значения параметров.
Операция явного преобразования типа
() Операция преобразования (или приведения) типа
Эта бинарная операция в контексте так называемого постфиксного выражения и в контексте выражения приведения обеспечивает изменение типа значения выражения, представляемого вторым операндом. Информация о типе, к которому преобразуется значение второго операнда, кодируется первым выражением, которое является спецификатором типа. Существуют две формы операции преобразования типа: каноническая, при которой в скобки заключается первый операнд (в выражениях приведения), и функциональная (в постфиксных выражениях), при которой в скобки заключается второй операнд. При функциональной форме операции преобразования типа спецификатор типа представляется одним идентификатором. Для приведения значения к типу unsigned long следует использовать лишь каноническую форму операции преобразования.
Операция индексации
[] Операция индексации. Например, a [4];
Играет роль бинарной операции при индексации элементов массива. Левый операнд представляет собой выражение, значением которого является адрес первого элемента массива. Правый операнд является выражением, определяющим значение индекса, т.е. смещения относительно первого элемента массива.
Операция с тремя операндами
?: Условная операция. Например, (x < 10)? x = 25: x++
Единственная в C++ операция с тремя операндами. Первое выражение-операнд располагается слева от знака ?, второе выражение-операнд располагается между знаками ? и :, третье выражение-операнд - справа от знака :. Выполнение условной операции начинается с вычисления значения самого левого операнда. Если его значение оказывается отличным от 0, то вычисляется значение второго операнда, которое и становится значением выражения. Если значение первого операнда оказывается равным 0, то вычисляется значение третьего операнда, и тогда это значение становится значением выражения.
Операция typeid обеспечивает динамическую идентификацию типов.
Операции и их приоритеты сведены в таблице 5.
Таблица 5