"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора


производит вывод

a = 1 b = 1 c = 1
a = 2 b = 1 c = 2
a = 3 b = 1 c = 3

Не инициализированная явно статическая (static) переменная неявно
инициализируется нулем.
С помощью операций new и delete программист может также создавать
объекты, время жизни которых управляется непосредственно; см.
#3.2.4.

2.2 Имена

Имя (идентификатор) состоит из последовательности букв и цифр.
Первый символ должен быть буквой. Символ подчерка _ считается
буквой. C++ не налагает ограничений на число символов в имени, но
некоторые части реализации находятся вне ведения автора компилятора
(в частности, загрузчик), и они, к сожалению, такие ограничения
налагают. Некоторые среды выполнения также делают необходимым
расширить или ограничить набор символов, допустимых в
идентификаторе; расширения (например, при допущении в именах
символа $) порождают непереносимые программы. В качестве имени не
могут использоваться ключевые слова C++ (см. #с.2.3). Примеры имен:

hello this_is_a_most_unusially_long_name
DEFINED foO bAr u_name HorseSense
var0 var1 CLASS _class ___

Примеры последовательностей символов, которые не могут
использоваться как идентификаторы:

012 a fool $sys class 3var
pay.due foo~bar .name if

Буквы в верхнем и нижнем регистрах считаются различными, поэтому
Count и count - различные имена, но вводить имена, лишь
незначительно отличающиеся друг от друга, нежелательно. Имена,
начинающиеся с подчерка, по традиции используются для специальных

- стр 52 -

средств среды выполнения, поэтому использовать такие имена в
прикладных программах нежелательно.
Во время чтения программы компилятор всегда ищет наиболее длинную
строку, составляющую имя, поэтому var10 - это одно имя, а не имя
var, за которым следует число 10; и elseif - одно имя, а не
ключевое слово else, после которого стоит ключевое слово if.