- •1) Принципы фон Неймана
- •2) Общая схема устройства компьютера
- •5) Структура программы на Паскале. Используемые в языке символы. Идентификаторы, ключевые слова, комментарии.
- •12) Массивы
- •15) Назначение параметров
- •16. Локальные, глобальные переменные. Время жизни и область видимости переменных;
- •18 Cтруктуры в си
- •19. Основные директивы препроцессора. Компиляция, линковка;
- •4.2.2. Директива define
- •20. Стандартная библиотека с:
15) Назначение параметров
Подпрограммы часто используются для многократного выполнения стереотипных действий над различными данными. Подпрограмма обычно имеет доступ к объектам данных, описанным в основной программе (по крайней мере, к некоторым из них), поэтому для того, чтобы передать в подпрограмму обрабатываемые данные, их достаточно присвоить, например, глобальным переменным. Но такой путь не особенно удобен и чреват ошибками.
Для обеспечения контролируемой передачи параметров в подпрограмму и возврата результатов из неё используется механизм параметров. Параметры описываются при описании подпрограммы (в её заголовке) и могут использоваться внутри процедуры аналогично переменным, описанным в ней. При вызове процедуры значения каждого из параметров указываются в команде вызова (обычно после имени вызываемой подпрограммы).
Способ передачи параметров в подпрограмму
Передача параметров по значению.
Передача параметров по ссылке.
Передача параметров по имени.
Передача параметров через стек.
16. Локальные, глобальные переменные. Время жизни и область видимости переменных;
локальные переменные - это переменная, описанная внутри блока
глобальные переменные - это
глобальные переменные видимы по всей иерархии внутрь(можн о обратиться)
локальные видны только внутри данного блока
локальные и глобальные переменная может иметь одно и тоже имя, при этом будет срабатывать механизм сокрытия переменных, который заключается в том, что лок. пер. внутри "закрывает" глобальную.
Существует два основных вида области видимости: локальная область видимости и глобальная область видимости.
Переменная, объявленная вне всех функций, помещается в глобальную область видимости. Доступ к таким переменным может осуществляться из любого места программы. Такие переменные располагаются в глобальном пуле памяти, поэтому время их жизни совпадает со временем жизни программы.
Переменная, объявленная внутри блока (часть кода, заключенная в фигурные скобки), принадлежит локальной области видимости. Такая переменная не видна (поэтому и недоступна) за пределами блока, в котором она объявлена. Самый распространенный случай локального объявления – переменная, объявленная внутри функции. Переменная, объявленная локально, располагается на стеке, и время жизни такой переменной совпадает со временем жизни функции.
Так как областью видимости локальной переменной является блок, в котором она объявлена, то существует возможность объявлять переменные с именем, совпадающим с именами переменных, объявленных в других блоках; а также объявленных на более верхних уровнях, вплоть до глобального.
Ее область видимости – только цикл for, за пределами этого цикла действует другая переменная с тем же именем, объявленная в начале функции. Кроме того, в теле цикла объявлена переменная k, областью видимости которой является тело цикла.
Локальные переменные можно объявлять со спецификатором доступа static. В этом случае компилятор располагает такую переменную в глобальном пуле памяти. Поэтому, время жизни статической переменной совпадает со временем жизни программы. При этом область видимости такой переменной ограничивается пределами блока, в котором она объявлена.