- •Часть 1. Структурное программирование
- •Екатеринбург
- •Введение
- •Состав языка Алфавит языка
- •Идентификаторы
- •Зарезервированные (ключевые) слова
- •Знаки операций
- •Константы
- •Комментарии
- •Типы данных
- •Основные типы данных
- •Структура программы
- •Переменные и выражения Переменные
- •Операции
- •Примеры операций
- •Выражения
- •Функции ввода-вывода Основные функции ввода-вывода в стиле с
- •Спецификации формата
- •Модификаторы формата
- •Операторы Оператор "выражение"
- •Условный оператор if
- •Оператор switch
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметром for
- •Операторы передачи управления Оператор безусловного перехода
- •Инициализация указателей
- •Операции с указателями
- •Массивы Одномерные массивы
- •Динамические массивы
- •Многомерные массивы
- •Задание Написать программу, вычисляющую среднее арифметическое для каждого столбца и каждой строки двумерного числового массива a[4, 5]. Строки
- •Типы данных, определенные пользователем
- •Переименование типов
- •Перечисления
- •Структуры
- •БиблиогрАфичеСкий список
- •ОглавлеНие
- •Часть 1. Структурное программирование
- •620002, Екатеринбург, ул.Мира, 19
- •620002, Екатеринбург, ул.Мира, 19
Операторы передачи управления Оператор безусловного перехода
Формат:
goto метка;
В теле той же функции, где использован оператор goto, должна присутствовать одна конструкция вида:
метка: оператор;
Оператор goto передает управление на помеченный оператор. Метка − это обычный идентификатор, областью видимости которого является функция, в теле которой он задан.
!!! Не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена.
Оператор break
Оператор break используется внутри операторов цикла, условного оператора или переключателя для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.
Оператор continue
Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.
Оператор return
Оператор возврата из функции return завершает работу функции и передает управление в точку ее вызова.
Формат оператора:
return [выражение];
Выражение должно иметь скалярный тип. Если тип возвращаемого результата описан как void, выражение должно отсутствовать.
Указатели и ссылки
При выполнении оператора определения переменной, например,
int i =10;
компилятор выделяет память в соответствии с типом переменной и инициализирует ее указанным значением. Все обращения в программе к переменной по ее имени заменяются компилятором на адрес области памяти, в которой хранится значение переменной. Программист может определять собственные переменные для хранения адресов областей памяти. Такие переменные называются указателями.
В С++ различают три вида указателей − указатели на объект, на функцию и на void, отличающиеся свойством и набором операций.
Указатели на функции будут рассмотрены в теме "Функции" методических указаний “Программирование на языке С++. Часть 2. Модульное программирование”.
Указатели на объект содержит адрес области памяти, в которой хранятся данные определенного типа. Объявление указателя имеет вид:
тип * имя;
где тип может быть любым, кроме ссылки и битового поля (см. далее); имя − это имя объекта. Звездочка относится непосредственно к имени объекта, поэтому, чтобы объявить несколько указателей, звездочку необходимо ставить перед именем каждого из них.
Примеры
int *a;
float *b, *c, *d;
Указатель на void применяется в тех случаях, когда конкретный тип объекта не определен (например, в одной и той же переменной в различные моменты времени необходимо хранить адреса объектов различных типов).
Указатель может быть константой или переменной, а также указывать на константу или переменную.
Примеры
int i; // целая переменная
const int ci; // целая константа
int *pi; // указатель на целую переменную
const int *pci; // указатель на целую константу
int *const cp=&i; // указатель-константа на целую переменную
const int *const cpc=&ci; // указатель-константа на целую константу