Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 435; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.3.204 (0.005 с.) |