Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






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





Каждая функция характеризуется типом возвращаемого значения, именем и списком типов ее параметров. Если имя функции использовать без последующих скобок и параметров, то он будет выступать в качестве указателя на эту функцию, и его значением будет выступать адрес размещения функции в памяти. Это значение можно будет присвоить другому указателю. Тогда этот новый указатель можно будет использовать для вызова функции. Указатель на функцию определяется следующим образом:

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

Примеры:

1. int f1(char c){.... }//определение функции

int(*ptrf1)(char);//определение указателя на функцию f1

2. char*f2(int k,char c){....}//определение функции

char*ptrf2(int,char);//определение указателя

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

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

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

Пример.

#include <iostream.h>

void f1()

{cout<<”\nfunction f1”;}

void f2()

{cout<<”\nfunction f2”;}

void main()

{

void(*ptr)();//указатель на функцию

ptr=f2;//указателю присваивается адрес функции f2

(*ptr)();//вызов функции f2

ptr=f1;//указателю присваивается адрес функции f1

(*ptr)();//вызов функции f1с помощью указателя

}

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

void (*ptr)()=f1;

Указатели н функции могут быть объединены в массивы. Например, float(*ptrMas[4])(char) – описание массива, который содержит 4 указателя на функции. Каждая функция имеет параметр типа char и возвращает значение типа float. Обратиться к такой функции можно следующим образом:

float a=(*ptrMas[1])(‘f’);//обращение ко второй функции

Пример.

#include <iostream.h>

#include <stdlib.h>







Date: 2015-08-15; view: 385; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию