Страница 58 из 82
Операторы C++ Согласно принятой нами терминологии, любое законченное предложение на языке C++ называется оператором. Рассмотрим множество БНФ, определяющих синтаксис операторов. Оператор ::= ОператорВыражение ::= Объявление ::= СоставнойОператор ::= ПомеченныйОператор ::= ОператорПерехода ::= ВыбирающийОператор ::= ОператорЦикла ОператорВыражение ::= [Выражение];
Судя по последней форме Бэкуса-Наура, любое правильно построенное выражение (построенное по правилам грамматики), заканчивающееся точкой с запятой, является оператором C++. Мы уже второй раз сталкиваемся с пустым оператором (достаточно внимательно посмотреть на последнюю форму Бэкуса-Наура). Первый раз мы встретили пустой оператор при анализе объявления. Ничего удивительного. Объявление - это тоже оператор. Пустой оператор имеет особое назначение. Он используется везде, где по правилам синтаксиса обязательно требуются операторы, а по алгоритму раазрабатываемой программы не нужно ни одного. Эти ситуации подробно будут рассмотрены ниже. Оператор объявления мы уже рассмотрели ранее. На очереди - составной оператор. СоставнойОператор ::= {[СписокОператоров]} Что такое список операторов - также уже известно. Судя по последней БНФ, составной оператор (даже пустоой) всегда начинается разделителем { и завершается разделителем }. Кроме того, составной оператор может быть абсолютно пустым (между двумя фигурными скобками может вообще ничего не стоять). Так что конструкция {}; однозначно воспринимается транслятором как последовательность, состоящая из двух операторов - пустого составного оператора и простого пустого. |