C++. Переменные

Перед использованием любая переменная должна быть описана.

Пример описания целой переменной с именем а и вещественной переменной х:
int а; float х;
Общий вид оператора описания переменных:
[класс памяти] [const] тип имя [инициализатор];
Рассмотрим правила задания составных частей этого оператора.

• Необязательный класс памяти: auto, extern, static и register.
• Модификатор const -- значение переменной изменять нельзя. Это именованная константа.
• Можно описать переменную и тут же присвоить ей начальное значение (инициализировать)

Примеры:
short int а = 1; // целая переменная а 
const char С = 'С'; // символьная константа С 
char s. sf = 'f'; // инициализация относится только к sf 
char t (54); 
float с = 0.22, x(3), sum; 
Если тип инициализирующего значения не совпадает с типом переменной, вы­полняются преобразования типа.

Если переменная определена внутри блока (что блок ограничен фигурными скобками), она называется локальной, область ее действия — от точки описания до конца блока, включая все вложенные блоки.

Если переменная определена вне любого блока, она называется глобальной и областью ее действия считается файл, в котором она определена, от точки описания до его конца.

Для задания класса памяти используются следующие спецификаторы:
auto — автоматическая переменная
Память под нее выделяется в стеке и при необходимости инициализируется каждый раз при выполнении оператора, содержащего ее определение. Освобождение памяти происходит при выходе из блока, в котором описана переменная. Время ее жизни — с момента описания до конца блока. Для глобальных переменных этот спецификатор не используется, а для локальных он принимается по умолчанию, поэтому задавать его явным образом большого смысла не имеет.
extern — определяется в другом месте программы (файле, позже)
Используется для создания переменных, доступных во всех модулях программы, в которых они объявлены.
static — статическая переменная.
Время жизни — постоянное. Инициализируется один раз при первом выполнении оператора, содержащего определение переменной. В зависимости от расположения оператора описания статические переменные могут быть глобальными и локальными. Глобальные статические переменные видны только в том модуле, в котором они описаны.
register — как auto, но память выделяется по возможности в регистрах 
процессора. Если возможности нет, то переменные обрабатываются как auto. 
Приведем стандартные примеры объявления переменных.
int а; // 1-я глобальная переменная а 
int main(){ 
int b; // 2-я локальная переменная b 
extern int X; // 3-я переменная x определена в другом месте 
static int с; // 4-я локальная статическая переменная с 
а = 1; // 5-я присваивание глобальной переменной 
int а; // 6-я локальная переменная а 
а = 2; // 7-я присваивание локальной переменной 
return 0; 
}
int X = 4; // 8-я определение и инициализация х 
Онлайн всего: 3
Гостей: 3
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте