Введение в язык Си++

         

Константные Выражения


В нескольких местах C++ требует выражения, вычисление которых дает константу: в качестве границы массива (), в case выражениях (), в качестве значений параметров функции, присваиваемых по умолчанию, (), и в инициализаторах (). В первом случае выражение может включать только целые константы, символьные константы, константы, описанные как имена, и sizeof выражения, возможно, связанные бинарными операциями

+ - * / % | ^ == != =

или унарными операциями

- ~ !

или тернарными операциями

? :

Скобки могут использоваться для группирования, но не для вызова функций.

Большая широта допустима для остальных трех случаев использования; помимо константных выражений, обсуждавшихся выше, допускаются константы с плавающей точкой, и можно также применять унарную операцию к внешним или статическим объектам, или к внешним или статическим массивам, индексированным константным выражением. Унарная операция может также быть применена неявно с помощью употребления неиндексированных массивов и функций. Основное правило состоит в том, что инициализаторы должны при вычислении давать константу или адрес ранее описанного внешнего или статического объекта плюс или минус константа.



Содержание раздела