ВУЗ:
Составители:
Рубрика:
double sum(int n, double a[]);
и
double sum(int n, double *a);
Так как массив всегда передается в функцию как указатель, то внутри функции производится изме-
нение элементов массива – фактического параметра, который указан как параметр при вызове функции.
Имя массива внутри вызываемой функции уже не воспринимается как константный указатель, а облада-
ет всеми свойствами указателя.
13.3 Указатели на функции
Рассмотрим выражение "вызов функции" подробнее:
обозначение_функции(список фактических параметров);
здесь обозначение функции воспринимается как "указатель на функцию, возвращающую значение ука-
занного типа". В языке С указателем на функцию может выступать выражение или переменная, пред-
ставляющие адрес функции. Самым простым указателем на функцию является ее имя, которое исполь-
зуется в определении функции и при ее описании. В этом случае имя функции воспринимается как кон-
стантный указатель, который жестко связан с функцией и не может быть перенастроен на другой про-
граммный объект.
Указатель на функцию как переменная должен быть определен отдельно от определения или прото-
типа какой-либо функции:
тип (*имя_указателя)(спецификация параметров);
здесь тип – тип возвращаемого функцией значения; имя указателя – идентификатор; спецификация па-
раметров – определение состава и типов параметров функции.
Единственным требованием является полное соответствие определения указателя-переменной и
прототипа функции, адрес которой ему присваивается.
К указателям на функцию можно применять только операцию присваивания.
Переменная-указатель на функцию, связанная с конкретной функцией, может использоваться для
вызова этой функции. Возможны два варианта построения выражения:
1) (*указатель)(список фактических параметров );
2) указатель(список фактических параметров ).
П р и м е р 36
#include <stdio.h>
#include <math.h>
int main()
{
unsigned i;
double x;
double (* fn)(double);
puts("Что считаем?");
puts("1. Синус");
puts("2. Косинус");
puts("3. Логарифм");
scanf("%d%lf", &i, &x);
switch (i)
{
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »
