Читать «Справочное руководство по C++» онлайн - страница 28

Бьярн Страустрап

R.6 Операторы

Все операторы, за исключением оговоренных случаев, выполняются один за другим.

оператор:

 помеченный-оператор

 оператор-выражение

 составной-оператор

 выбирающий-оператор

 оператор-цикла

 оператор-перехода

 оператор-описания

R.6.1 Помеченный оператор

Оператор можно снабдить меткой.

помеченный-оператор:

 идентификатор : оператор

 case выражение-константа : оператор

 default : оператор

Использование идентификатора в качестве метки является ее определением. Идентификатор метки может использоваться помимо этого только в качестве указания перехода в операторе goto. Областью видимости метки является функция, в которой она появилась. Метки нельзя повторно описывать в пределах одной функции. Нельзя использовать метку в операторе goto до ее определения. Метки имеют свое пространство именования и они не вступают в коллизию с другими идентификаторами.

Метки в case или default могут встречаться только в операторе переключателя.

R.6.2 Оператор-выражение

Чаще всего операторами бывают выражения; в этом случае оператор имеет такой вид:

оператор-выражение:

 выражение opt;

Обычно операторы-выражения являются присваиваниями или вызовами функций. Все побочные эффекты выполнения оператора-выражения происходят до выполнения следующего оператора. Оператор-выражение с отсутствующим выражением называется пустым оператором. Он может пригодиться, если необходимо поставить метку перед самым концом составного оператора ({) или для задания пустого тела оператора цикла while (§R.6.5.1).

R.6.3 Составной оператор или блок

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

составной-оператор:

 { список-операторов opt }

список-операторов:

 оператор

 список-операторов оператор

Отметим, что описание считается оператором (§R.6.7).

R.6.4 Выбирающий оператор

Выбирающие операторы выбирают одну из нескольких структур управления.

выбирающий-оператор:

 if ( выражение ) оператор

 if ( выражение ) оператор else оператор

 switch ( выражение ) оператор

Оператор в выбирающем-операторе не может быть описанием.

R.6.4.1 Оператор if

Выражение должно быть арифметического типа, или типа указателя, или типа класс, для которого существует однозначное преобразование в арифметический тип или тип указателя (§R.12.3).