Суббота, 04.05.2024, 03:23 Вы вошли как Гость | Группа "Гости" | RSS | Главная | Параметры функций. | Мой профиль | Выход | Вход
Вы смотрели фильм-расследование Алексея Навального "Дворец президента"?
Всего ответов: 2
» Меню сайта

» РАЗНОЕ

» Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Параметры функций.

Формальные параметры функций

Как уже говорилось в разделе «Создание собственных функций» функцию можно описать следующим образом:

 

 тип имя ( формальные параметры )
{
действия
}

 

Формальные параметры функции — это значения, которые передаются в функцию. Они указываются через через запятую в круглых скобках после имени функции. Для каждого параметра указывается тип (любой из стандартных: массивы, int, bool, datetime, double, color, string).

В функцию не может быть передано более 64 параметров.

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

В описании функции параметрам можно присваивать значения по умолчанию. При этом следует иметь в виду, что все параметры, следующие за первым параметром со значением по умолчанию, должны также иметь значения по умолчанию:

 

 int GetSomethingUseful ( int a, int b = 0, bool f = true, double r = 5.9)
{
...
}

 

В этом случае все или часть параметро по умолчанию можно упускать при вызове функции, а вместо них автоматически будут подставлены значения по умолчанию:

 

  • Вызов GetSomethingUseful(3, 5, false) будет эквивалентен вызову GetSomethingUseful(3, 5, false, 5.9).
  • Вызов GetSomethingUseful(3, 5) будет эквивалентен вызову GetSomethingUseful(3, 5, true, 5.9).
  • Вызов GetSomethingUseful(3) будет эквивалентен вызову GetSomethingUseful(3, 0, true, 5.9).

 

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

Если мы импортируем функцию из другого модуля, то такие параметры таких функций не могут иметь значения по умолчанию.

Все, что я рассказал выше, касалось передачи параметров в функцию по значению. Чтобы все стало ясно, давайте рассмотрим небольшой пример:

 

 void MyFirstFunction ()
{
int a = 10;
MySecondFunction ( a );
}

void MySecondFunction ( int b )
{
b = b + 1;
Print ( b );
}

 

В этом примере мы вызываем MySecondFunction, передавая в качестве параметра значение переменной «a» (в нашем случае — 10). Таким образом, при вызове MySecondFunction переменной «b» — формальному параметры функции — будет присвоено значение 10, которое будет следующей строчкой увеличено на единицу и выведено в лог. Однако при этом значение переменной a в MyFirstFunction не изменится и останется равным 10.

Существует и другой способ передачи параметров в функцию — по ссылке (используя после описания типа знак амперсенда — &). Рассмотрим новый пример:

 

 void MyFirstFunction ()
{
int a = 10;
MySecondFunction ( a );
}

void MySecondFunction ( int& b )
{
b = b + 1;
Print ( b );
}

 

В этом примере мы вызываем MySecondFunction, передавая в качестве параметра ссылка на переменную «a». Таким образом, в функции MySecondFunction всегда, когда будет идти обращение к переменной b, реально будет идти обращение к переменной a. Т.е. следующей строчкой значение переменной «a» будет увеличено на единицу и выведено в лог. После завершения функции MySecondFunction переменная «а» будет равна 11.

В качестве параметров по ссылке можно передавать как переменные стандартных типов (но только в пределах одного модуля), так и массивы (как в пределах одного модуля, так и в другие модули).

» Поиск


гороскоп
» Мини-чат

» Наш опрос
Оцените мой сайт
Всего ответов: 46

» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • » Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Copyright MyCorp © 2024
    Бесплатный хостинг uCoz