Объявление и определение переменных

Переменная — это именованная ячейка памяти для хранения данных конкретного типа. Для того чтобы программа могла работать с переменной, программист должен объявить и/или определить её в исходном коде. Термины "объявление" и "определение" означают, в общем случае, разные вещи в отношении элементов программ, но для переменных они почти всегда совпадают. Эти тонкости будут освещены, когда мы познакомимся с функциями, классами, и особыми — внешними переменными. Здесь же будем использовать оба термина взаимозаменяемо, наравне с обобщающим — "описанием".

В первом приближении можно сказать, что объявление содержит описание элемента программы со всеми его атрибутами, необходимыми для использования в программе. Определение же содержит конкретную реализацию этого элемента, отвечающую объявлению.

Объявления позволяют компилятору связать друг с другом все элементы программы. А на основании определений компилятор генерирует исполняемый код.

В случае переменных их объявление практически всегда выступает и в качестве определения, поскольку обеспечивает выделение памяти и интерпретацию содержимого в соответствии с типом (а это и есть реализация переменной). Исключение составляют лишь объявления переменных со словом extern (об этом подробнее в разделе Внешние переменные).

Только после описания переменной можно с помощью специальных инструкций записывать в неё значения, считывать их, ссылаться по имени на переменную для передачи её из одной части программы в другую.

В простейшем случае инструкция, описывающая переменную, выглядит следующим образом:

type name;

Здесь имя name должно отвечать требованиям составления идентификаторов. В качестве типа type может быть указан любой из встроенных типов, которые мы рассмотрели в предыдущем разделе, или другие пользовательские типы — как их создавать, мы изучим чуть позднее. Например, целочисленная переменная i объявляется так:

int i;

При необходимости можно описать сразу несколько однотипных переменных. В этом случае их имена указываются в инструкции через запятую.

int ijk;

Важным фактором является место в программе, где расположена инструкция с описанием переменной. Это влияет на время жизни переменной и её доступность из разных частей программы.