Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |