Объявление и определение переменных
Переменная — это именованная ячейка памяти для хранения данных конкретного типа. Для того чтобы программа могла работать с переменной, программист должен объявить и/или определить её в исходном коде. Термины "объявление" и "определение" означают, в общем случае, разные вещи в отношении элементов программ, но для переменных они почти всегда совпадают. Эти тонкости будут освещены, когда мы познакомимся с функциями, классами, и особыми — внешними переменными. Здесь же будем использовать оба термина взаимозаменяемо, наравне с обобщающим — "описанием".
В первом приближении можно сказать, что объявление содержит описание элемента программы со всеми его атрибутами, необходимыми для использования в программе. Определение же содержит конкретную реализацию этого элемента, отвечающую объявлению.
Объявления позволяют компилятору связать друг с другом все элементы программы. А на основании определений компилятор генерирует исполняемый код.
В случае переменных их объявление практически всегда выступает и в качестве определения, поскольку обеспечивает выделение памяти и интерпретацию содержимого в соответствии с типом (а это и есть реализация переменной). Исключение составляют лишь объявления переменных со словом extern (об этом подробнее в разделе Внешние переменные).
Только после описания переменной можно с помощью специальных инструкций записывать в неё значения, считывать их, ссылаться по имени на переменную для передачи её из одной части программы в другую.
В простейшем случае инструкция, описывающая переменную, выглядит следующим образом:
type name; |
Здесь имя name должно отвечать требованиям составления идентификаторов. В качестве типа type может быть указан любой из встроенных типов, которые мы рассмотрели в предыдущем разделе, или другие пользовательские типы — как их создавать, мы изучим чуть позднее. Например, целочисленная переменная i объявляется так:
int i; |
При необходимости можно описать сразу несколько однотипных переменных. В этом случае их имена указываются в инструкции через запятую.
int i, j, k; |
Важным фактором является место в программе, где расположена инструкция с описанием переменной. Это влияет на время жизни переменной и её доступность из разных частей программы.