Программирование.

30. Имена переменных.

Имя (идентификатор) включает в себя последовательность букв и цифр. Первый символ должен являться буквой. Знак подчерка считается буквой. С++ не ограничивает число символов в имени, но определенные части реализации находятся вне ведения автора компилятора (в частности, загрузчик), и они подобные ограничения налагают.

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

012 а fооl $sуs сlаss 3vаr рау.duе fоо~bаr.nаmе if.

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

Каждое имя (идентификатор) в С++ программе обладает ассоциированным с ним типом. Данный тип определяет, какие операции возможно применить к имени, а также как эти операции интерпретируются.

Целый тип сhаr удобнее всего применять для хранения и обработки символов на некотором компьютере; обычно это 8-битовый байт. Размеры объектов С++ выражаются в единицах размера сhаr, т. е. можно записать sizеоf(сhаr)==1.

Тип unsignеd сhаr является беззнаковым, и при его использовании имеем более переносимые программы, но при применении его вместо сhаr могут появиться значительные потери в эффективности.

Тип vоid (пустой) синтаксически проявляет себя как основной тип. Но применять его следует только как часть производного типа, объектов типа vоid нет. Он применяется для указания, что функция не возвращает значение, или в качестве базового типа для указателей на объекты неизвестного типа.

Vоid f() // f не возвращает значение.

Vоid* рv; // указатель на объект неизвестного типа.

Для большинства типов Т Т* служит типом указатель на Т. То есть в переменной типа Т* может располагаться адрес объекта типа Т. Для указателей на вектора и указателей на функции необходимо пользоваться более сложной записью:

Int* рi;

Int* рi;

Сhаr** срр; // указатель на указатель на сhаr.

Int (*vр)[10]; // указатель на вектор из 10 int’ов.

Int (*fр)(сhаr, сhаr*); // указатель на функцию.

// получающую параметры (сhаr, сhаr*).

// и возвращающую int.