-
Notifications
You must be signed in to change notification settings - Fork 0
Переменные
Между понятием переменной в математике и понятием переменной в программировании немало схожего: и там, и там переменная обозначает некоторое значение, как правило, заранее неизвестное.
Однако в языке программирования С понятие переменной гораздо менее абстрактное: переменная – это поименованная область памяти. Иначе говоря, это кусок памяти, состоящий из одной или нескольких ячеек памяти, который мы связали с некоторым именем (т.е. как-то назвали), к которому мы можем обращаться (осуществлять доступ) по этому имени и в который мы можем записывать (присваивать) какое-то значение, которое после этого там будет храниться и считывать хранящееся значение. Запись значения приводит к перезаписи "старого" значения.
В языке Си, как и во многих других языках, существует следующее правило: Прежде чем использовать некоторый объект по имени, надо объявить этот объект. Такими объектами могут быть переменные, функции, пользовательские типы. Не надо объявлять то, что "встроено" в язык, сами средства языка, например, встроенные типы или "названия" операторов.
А все остальное где-то объявлено – либо мы объявили это сами в нашей программе, либо использовали определение из заголовочного файла библиотеки, которую мы используем.
Вообще-то, в языке Си для этого правила существуют послабления (т.е. в некоторых случаях отсутствие объявления не приведет к ошибке), но мы будем считать отступление от этого правила дурным тоном.
Идентификатор – это то, что можно использовать в качестве имени для разных объектов языка, определяемых программистом.
В языке Си идентификатор – это последовательность из символов латинских букв, символов подчеркивания и символов цифр, начинающаяся с буквы или символа подчеркивания, причем такая последовательность не должна совпадать ни с одним ключевым словом (ключевые слова – это зарезервированные слова языка).
Несмотря на то, что с символа подчеркивания начинать идентификаторы разрешено, делать это не рекомендуется, т.к. такие имена, по соглашению, зарезервированы для использования в качестве служебных имён в различных библиотеках.
Примеры идентификаторов:
x my my_pretty_x MyPrettyX zz12 _x_ _12_zz
Примеры того, что не является идентификатором:
12zz 12_zz_ a$ my-pretty-x my pretty x
Объявление переменной можно воспринимать как информацию для компилятора о том, что нам необходимо некоторое место в памяти, чтобы хранить там значения. Для этого мы сообщаем компилятору имя, которое используется для обращения (доступа) к этой памяти и тип данных, которые мы собираемся там хранить.
Объявление переменной состоит из обозначения типа, после которого через запятую перечислены имена переменных. После каждого имени может стоять знак равенства и выражение, задающее начальное значение переменной (инициализация).
Примеры:
int x; int my1, my2, your; int zz = -1;
См. Тип данных.