Основная идея всех языков
программирования состоит в использовании объектов и операций (функций,
процедур, методов) над этими объектами. Простейшими представителями
объектов являются переменные.
Любая переменная обладает несколькими характеристиками: временем
жизни, областью действия, именем, значением, типом. Первые две
характеристики зависят от места и способа описания переменной.
Переменные можно описывать вне функций (такие переменные называются
глобальными). Их время жизни – вся программа, а область действия –
весь файл, в котором они описаны, начиная с точки описания.
Глобальные переменные при инициализации обнуляются, например, int i=0.
Переменная, описанная внутри функции или внутри блока, называется
локальной. Для нее выделяется память, а область действия и время
жизни ограничены блоком, где она описана.
Кроме этого определены статические переменные (static). Они
существуют на протяжении всей программы и инициируются однократно (т.е.
сохраняют значение), но видны только в своем блоке.
Динамические переменные - это переменные, память под которые
резервируется с помощью операции new в динамической области памяти.
Доступ к ним осуществляется не по имени, а по специальным переменным,
называемым указателями.
При трансляции программы под объекты выделяется 5 основных типов
памяти: область глобальных переменных, свободная или динамически
распределяемая память, регистровая память, память сегмента программы
и стековая память.
Локальные переменные и параметры функции размещаются в стековой
памяти, глобальные- в глобальной, внутренние служебные переменные –в
регистрах, остальные- в свободной памяти.
Динамическая память в отличие от других типов памяти не имеет имен и
к ней можно обращаться только по адресу через указатель. Для
выделения памяти в динамической области используется оператор new,
который возвращает адрес начала области, отведенной под переменную.
Например,
Unsigned short int * ppointer;
Ppointer=new unsigned short int;
Для занесения в эту память значения используют конструкцию вида
*ppointer=<значение>;
После работы с такой переменной нужно освободить место в памяти с
помощью оператора delete <имя указателя>, что освобождает область по
адресу находящемуся в указателе ppoiner.
Имена переменных могут быть произвольными по длине, но компилятор
различает прописные и заглавные буквы.
Константы в программе не меняются, после того как их задали:
const int words =65 000;
const float dot = 53;