ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
double sin(double); // y = sin(x)
double ln(double); // y = ln(x)
double exp(double); // y = exp(x)
// и т.д.
Опишем переменную-указатель с именем f, которой можно
присвоить адреса каждой из выше приведенных функций:
double (*f)(double);
Здесь определяется переменная f как указатель на функцию, которая
возвращает значение типа double и имеет один аргумент типа double.
Следует обратить внимание на наличие скобок в описании
переменной. Отсутствие этих скобок трактует данную запись как
прототип функции с именем f и параметром типа double,
возвращающую значение указателя на тип double.
Присвоим переменной f адрес функции вычисления синуса:
f = sin; // sin – адрес начала машинного кода функции
// double sin(double)
Таким же образом можно было присвоить переменной f адрес любой
из вышеперечисленных функций.
Далее вызывать функцию вычисления синуса можно через
переменную-указатель:
double y = f(3.1415926); // вызов функции sin(3.1415926)
или через операцию разадресации переменной-указателя:
double y = (*f)(3.1415926);
Указатели на функции часто используются в качестве параметров
других функций. Проиллюстрируем это при решении следующей задачи:
найти корень уравнения
0)(
=
xF
методом деления отрезка пополам.
Предусмотреть возможность использования в качестве
)(xF
различных
функций. Это обеспечивается посредством введения четвертого
параметра, который является указателем на функцию вычисления
)(xF
.
// функция решения уравнения F(x) = 0 на отрезке [a; b]
// с точностью eps>0 методом деления отрезка пополам
double Root(double a, double b, double eps,
double (*f)(double))
28
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
double sin(double); // y = sin(x)
double ln(double); // y = ln(x)
double exp(double); // y = exp(x)
// и т.д.
Опишем переменную-указатель с именем f, которой можно
присвоить адреса каждой из выше приведенных функций:
double (*f)(double);
Здесь определяется переменная f как указатель на функцию, которая
возвращает значение типа double и имеет один аргумент типа double.
Следует обратить внимание на наличие скобок в описании
переменной. Отсутствие этих скобок трактует данную запись как
прототип функции с именем f и параметром типа double,
возвращающую значение указателя на тип double.
Присвоим переменной f адрес функции вычисления синуса:
f = sin; // sin – адрес начала машинного кода функции
// double sin(double)
Таким же образом можно было присвоить переменной f адрес любой
из вышеперечисленных функций.
Далее вызывать функцию вычисления синуса можно через
переменную-указатель:
double y = f(3.1415926); // вызов функции sin(3.1415926)
или через операцию разадресации переменной-указателя:
double y = (*f)(3.1415926);
Указатели на функции часто используются в качестве параметров
других функций. Проиллюстрируем это при решении следующей задачи:
найти корень уравнения F ( x) = 0 методом деления отрезка пополам.
Предусмотреть возможность использования в качестве F (x) различных
функций. Это обеспечивается посредством введения четвертого
параметра, который является указателем на функцию вычисления F (x) .
// функция решения уравнения F(x) = 0 на отрезке [a; b]
// с точностью eps>0 методом деления отрезка пополам
double Root(double a, double b, double eps,
double (*f)(double))
28
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »
