рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Указатель на функцию

Указатель на функцию - раздел Информатика, Функции   На Функцию, Как И На Любой Другой Объект, Можно Создать Указа...

 

На функцию, как и на любой другой объект, можно создать указатель. Указатель на функцию содержит адрес первого оператора исполняемого кода функции. Форма записи:

модификатор тип (*имя_указателя)(список_формальных_параметров)

Смысл поля модификатор аналогичен смыслу поля модификатор1 при определении функции. Поле тип определяет тип возвращаемого функцией значения. Поле имя_указателя является идентификатором указателя. Поле список_формальных_параметров содержит список формальных параметров функции. Для обращения к функции через указатель на функцию данному указателю должно быть присвоено значение адреса функции. Форма записи:

имя_указателя=имя_функции

или

имя_указателя=&имя_функции

Поле имя_функции содержит имя функции, адрес которой присваивается указателю. Скобки, являющиеся операцией «вызов функции», не ставятся. Содержимое поля список_формальных_параметров в объявлении указателя должно совпадать с содержимым аналогичных полей в объявлении и определении функции.

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

(*имя_указателя)(список_фактических_параметров)

или

имя_указателя(список_фактических_параметров)

Можно определить массив указателей на функции. Форма записи:

тип (*имя_указателя[размер1][размер2]…[размерN]) (список_формальных_параметров)={список_инициализаторов}

Смысл полей тип, имя_указателя и список_формальных_параметров такой же, как и при объявлении указателя на функцию, смысл полей, определяющих размеры массива, и поля список_инициализаторов такой же, как и при объявлении массивов. При этом возможно использование формы объявления массива указателей на функцию, аналогичной второй форме объявления массива. Недостаток массива указателей на функцию в том, что списки формальных параметров всех функций, на которые указывают указатели массива, должны совпадать.

 

Пример 12

int sum(int a, int b)

{

return a+b;

}

 

int square_sum (int (*p)(int,int),int x, int y)

{

int sum=p(x,y);

return sum*sum;

}

 

void main(void)

{

int (*f)(int,int);

f=sum;

printf("%d %d",(*f)(3,2),square_sum(f,3,4));

}

На экране будет напечатано: 5 49

– Конец работы –

Эта тема принадлежит разделу:

Функции

Функции Функция это совокупность объявлений и операторов предназначенных для выполнения отдельной...

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

Что будем делать с полученным материалом:

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

Все темы данного раздела:

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

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

Функции с переменным числом параметров
  В объявлении и определении такой функции переменное число параметров задается многоточием в конце списка формальных параметров, при этом запятая после последнего фиксированного пара

Рекурсивные функции
  В языке C функции могут вызывать сами себя. Функция называется рекурсивной, если во время ее работы возникает ее повторный вызов, либо непосредственно, либо косвенно, путем цепочки

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги