Они бывают локальные(местные) и глобальные. Переменные и постоянные, описанные внутри функций, называются локальными и существуют только при работе объявляющих их функций. Переменные и константы (постоянные), объявленные вне функций, называются глобальными. Среди глобальных переменных и постоянных не может быть двух с одинаковыми именами, а локальные могут дублировать глобальные имена и имена друг друга(при этом обращение к таким именам внутри подпрограмм соответствуют обращениям к локальным переменным и постоянным, а вне их - к глобальным. Локальные и глобальные переменные и константы хранятся в разных местах и даже при одинаковых значениях не влияют друг на друга. Глобальная переменная хранится в сегменте данных ( размер 63кб). Если этого мало, то используются ссылки и динамические переменные. Локальные переменные существуют только при работе объявляющих функций и хранят свои значения в специальной области памяти – стеке. По умолчанию размер стека = 16кб (это максимальный объем всех локальных переменных, работающих одновременно). После работы подпрограммы ее локальные переменные освобождают стек.
1.2.2.4.1 Константы
Константы представляют собой данные используемые только для чтения , т.е. константы не изменяют своего значения в процессе выполнения программы. В программе они могут быть заданы явно своим значением или обозначены именем.
Константы бывают:
типизированные ( с указанием типа константы);
нетипизированные (без указания типа константы).
Их можно описать двумя способами:
при помощи модификатора const - для типизированных;
при помощи директивы #define( использование макроса, см.#) – для нетипизированных.
Форма записи:
Const СпецификаторТипа <ИмяПеременной1=Значение1, …,ИмяПеременнойN=ЗначениеN>;
#define Идентификатор_макроса <Последовательность_лексем> (подробнее см. . #)
В качестве значения может использоваться:
непосредственно число указанного типа;
простое выражение, допустимое для заданного типа данных( допускается использовать в них описанные ранее константы или переменные со стартовым значением (см. #2.2.4.2)).
Примеры:
const int I=6, j=3+2*4, k=I*j+5;
#define h 3;
#define m 3*h+k;
Отметим, что если после слова const отсутствует спецификатор типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться немодифицируемым, т.е. значение ему может быть присвоено только один раз.
Достарыңызбен бөлісу: |