Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Аппарат формальных и фактических аргументовСодержание книги
Поиск на нашем сайте Формальные аргументы - это объекты программы, в терминах которых описано тело в описании функции. Фактические аргументы - это те объекты программы, которые ставятся в соответствие формальным аргументам в вызове функции. Окончательно синтаксис объявления (описания) функции: <Тип результата> <имя функции> ([<декларации формальных аргументов>]) {<Декларации> <Тело функции> }Окончательно синтаксис вызова функции: <Имя функции> ([<список фактических аргументов>]) Пример 4: Определим функцию для нахождения максимального значения среди двух цiлочисельних значений (a, b); имя функции - max_int INT max_int (int a, int b) { return (a> b)? a: b; } main () {Int x, y, z; int m1, m2; scanf ("% d% d% d", & x, & y, & z); / * Max среди x, y, z * / m1 = max_int (x, y); m2 = max_int (m1, z); printf ("\ n max (% d,% d,% d) =% d", x, y, z, m2); }Выполним классификацию аргументов функций из этого примера: имя функции | формальные аргументы | фактические аргументы _____________|___________________________________________________________main | - | -_____________|______________________|____________________________________printf | в библиотеке <stdio.h> | "\ n max (% d,% d,% d) =% d", x, y, z, m2_____________|______________________|____________________________________scanf | в библиотеке <stdio.h> | "% d% d% d", & x, & y, & z_____________|______________________|____________________________________max_int | a, b | x, y | | M1, z_____________|______________________|____________________________________Аргументы функций также разделяют на:
Входные аргументы використуються у функции для формирования результатов, они не должны изменяться в ходе выполнения тела функции. Выходные аргументы формируются в функции на основе входных аргументов, они изменяются во ходе выполнения тела функции. Аргументы, обновляются выполняет роль входных I выходных аргументов одновременно: використуються в функции для формирования результатов, меняются в ходе выполнения тела функции, они формируются в функции. Выполним классификацию аргументов функциям по примеру 4 по признаку входные аргументы / выходные аргументы / аргументы, которые обновляются. имя функции | входные аргументы | выходные аргументы | аргументы, | | | Которые обновляются _____________|_________________|__________________|_________________ max_int | a, b | - | -_____________|_________________|__________________|_________________ printf | "\ n max (% d,% d,% d) | - | - | =% D ", x, y, z, m2 | |_____________|_________________|__________________|_________________ scanf | "% d% d% d" | & x, & y, & z | -_____________|_________________|__________________|_________________Прототип функции Потому что функции в языке Си независимые друг от друга (на различие от языка Паскаль, где они могут быть вложенные друг в друга), функции, что вызывает нужна информация по то, что в ней будут использованы вызовы других функций. Это выполняется с помощью Инструкции описания прототипа функции. Синтаксис: <Тип результата> <имя функции> ();или более "жесткий" вариант: <Тип результата> <имя функции> (<декларации типов аргументов>);Поэтому в примере 4 в функции main необходима декларация: INT max_int (int, int); / * 1 * /Она сообщает, что в функции main Ожидается вызов функции max_int с двумя цiлочисельнимы аргументами, которая возвращает результат целого типа. Этот прототип также можно записать иначе: INT max_int (); / * 2 * /INT max_int (int a, int b); / * 3 * /Третий вариант iлюструе главный принцип прототипа функции - имена аргументов, указанi в прототипi, не обвьязково должны спiвпадаты с именами формальных аргументов в описании функции.
Тема 8. Передача аргументов функций Цель: познакомиться со способами передачи аргументов функциям (по значению, по имени, по ссылке), с особенностями передачи аргументов в языке Си, с особыми случаями передачи аргументов (массивов, структур), с оператором ->, с аргументами функции main. Способы передачи аргументов Передача аргументов по значению Передача аргументов по имени Передача аргументов по ссылке Особенности передачи аргументов в языке Си Особые случаи передачи аргументов Передача аргументом одномерного массива Передача аргументом многомерного массива Передача аргументом структуры Аргументы командной строки Способы передачи аргументов В абсолютном большинстве языков программирования существует три способа передачи аргументов
|
||
|
Последнее изменение этой страницы: 2017-01-27; просмотров: 701; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.006 с.) |