Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_K_Magistrature.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
508.41 Кб
Скачать

3. Переменные в языках программирования. Имя, тип и значение переменной. Область видимости и время жизни переменной.

Переменная — это именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Во время выполнения программы значение переменной можно изменять. Перед использованием любая переменная должна быть описана.

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

Возможны следующие варианты области видимости:

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

все функции файла

все блоки функции

некоторый блок и вложенные в него

Под временем жизни переменной понимается период выполнения программы, начиная с момента выделения для переменной места в оперативной памяти и заканчивая моментом освобождения этой памяти.

Область видимости и время жизни переменных определяется их описанием в соответствии со следующей таблицей.

Локальная(хранится в стеке, область видимости блок, время жизни от создания до конца)

статическая (хранится в область данных, область видимости блок, время жизни от создания до конца)

глобальная (вне функции) (хранится область данных, область видимости программа (extern), время жизни от создания до конца)

динамическая(хранится в куче, область видимости переменная-указатель, время жизни от создания до удаления)

Тип Описание типа Размер(байты)

Integer Целое (со знаком) 4

Boolean Логический тип 1

Single Вещественный(дробный) 4

Double Вещественный(дробный 8

Char символ 1

String строковый тип

Byte однобайтовое поле знака 1

Динамические переменные – это переменные, которые создаются (и уничтожаются) во время выполнения программы. В зависимости от того, кто отвечает за работу с такими переменными – компилятор или программист – различают языки с динамическим или статическим управлением памятью.

В языках С/С++ используется статическое управление памятью (в отличие, например, от таких языков прошлого, как ALGOL-60 или PL/I, где было реализовано динамическое управление памятью). Заметим, что Pascal тоже язык со статическим управлением памятью, как С/С++.

В С/С++ динамические переменные должен создавать и следить за их корректным использованием и уничтожением программист. Динамические переменные создаются в куче (heap) - специально отведенной для этой цели области оперативной памяти, которая располагается между стеком и статической областью команд и данных.

Для создания и уничтожения динамических переменных в С++ используются операторы new и delete, соответственно. В Си для этих целей используются функции стандартной библиотеки (malloc, calloc, и др. – для создания, и free для уничтожения). Значением оператора new (или функций стандартной библиотеки Си) является адрес созданной переменной, а в случае неудачи NULL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]