Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Процедуры и функции в языке Си. Параметры-переменные, параметры-значения. Примеры.

Ответ:

Процедура – подпрограмма, которая получает передаваемые ей параметры и выполняет необходимые действия.

имя_функции(список_параметров)

Функция – отличается от процедуры тем, что дополнительно всегда возвращает одно результирующее значение.

тип имя_функции(список_параметров)

Синтаксис определения (definition) функции:

тип имя(список_параметров)

{

тело функции

}

Где:

· тип – тип возвращаемого значения. Особые случаи:

o void – нет возвращаемого значения (т.е. функция – эквивалент процедуры);

o тип опущен – по умолчанию предполагается тип int

· список_параметров – список формальных параметров (возможно пустой) разделенных запятыми, каждый элемент которого имеет вид:

тип имя_параметра

Примеры:

int sum(int x, int y) { int k; k = x + y; return k; }   sum(int x, int y) // неявныйтип int { int k; k = x + y; return k; } int sum(int x, int y) { int k; k = x + y; return; // нет значения } int sum(int x, int y) { int k; k = x + y; // поумолчанию return; }

Параметры-переменные – параметры, служащие для возвращения результатов в основную программу.

Параметры-значение – параметры, служащие для передачи данных из программы в подпрограмму.

В каких случаях использовать параметры значения, а в каких - параметры-переменные:

Как осуществляется замена формальных параметров на фактические в момент обращения к подпрограмме?

· Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передается подпрограмме.

· Если же параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия. Любые возможные изменения в подпрограмме параметра-значения никак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменение параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе.

Описание всех формальных параметров как параметров-переменных нежелательно по двум причинам.

· Это исключает возможность вызова подпрограммы с фактическими параметрами в виде выражений, что делает программу менее компактной.

· В подпрограмме возможно случайное использование формального параметра, например, для временного хранения промежуточного результата, т.е. всегда существует опасность непреднамеренно «испортить» фактическую переменную.

20.Глобальные и локальные переменные в языке Си. Видимость объектов. Примеры.

Ответ:

Глобальные переменные

· Используются для описания данных, которые должны быть доступны в нескольких функциях, модулях.

· Как правило - описываются вне блоков (вначале модуля).

· Существуют все время исполнения программы.

· Главная проблема: сложность контроля за изменением данных (возможно в любых точках программы).

Локальные переменные

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

· Описываются внутри блока

· Уничтожаются при выходе из блока

· Не рекомендуются при описании неизменяемых значений (констант)

int a;                          int function (int b, char c);     void main (void) {                                 int d, e;                              float f;                                 ...           } int function (int b, char c) {                                 char g;                           ... } // Определение глобальной переменной // Объявление функции (т.е. описание ее заголовка)     //Тело программы //Определение локальных переменных //Определение локальной переменной     //Определение функции и формальных параметров //Тело функции //Определение локальной переменной  

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

Видимость переменных и функций в программе определяется следующими правилами:

· Переменная, объявленная или определенная глобально, видима от точки объявления или определения до конца исходного файла.

· Переменная, объявленная или определенная локально, видима от точки объявления или определения до конца текущего блока.

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

· Функции с классом памяти static видимы только в исходном файле, в котором они определены. Всякие другие функции видимы во всей программе.



<== предыдущая лекция | следующая лекция ==>
Логические выражения в языке Си. Правила их записи и вычисления. Примеры. | Понятие рекурсии. Механизм рекурсии. Пример рекурсивной функции.
Поделиться с друзьями:


Дата добавления: 2018-11-11; Мы поможем в написании ваших работ!; просмотров: 1690 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2285 - | 1991 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.