Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


APUNTADORES A FUNCIONES

    |                                                int * f1()

            f1 es una función sin parámetros que regresa un apuntador a un entero

                                                      int (*f1)()

            f1 es un apuntador a una función sin parámetros que regresa un entero
 


Nombres funciones y apuntadores a funciones
 

                                    int f()
                                    {
                                        ......
                                    }

                                    main()
                                    {
                                                    int (*p)();
                                                    int i;

                                                    p = f; /* parasitaje: p apunta hacia f */
                                                    p = f(); /* INVALIDO */
                                                    i = p(); /* aplicando operador llamada() a p */
                                                    i = f(); /* aplicando opreador llamada() a f */
                                                    i = (*p)(); /* equivalente a i=f() */
                                    i
                                    }
 

Ejemplo de uso: arreglo funciones

/* Programa de arreglo de funciones, que puede reemplazar  una estructura switch */

#include <math.h>

        main()
{

                    static double (*action[3])(double) = ffabs, sqrt, expg;
                    int i;
                    double x,y;

                    x=1.0;
                    printf(''De un numero (0-2): '');
                    scanf(''%d'',&i);
                    y = (*action[i])(x);
                    printf(''nn encontramos: %lf nn'',y);
}

Nota:
El arreglo action es un arreglo de tres apuntadores a funciones doubles, que regresan un double y esta inicializado en fabs, sqrt y exp.
 

MENÚ PRINCIPAL