-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArreglosDeApuntadoresAFunciones.c
57 lines (33 loc) · 1.37 KB
/
ArreglosDeApuntadoresAFunciones.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Figura 7.28: fig07_28.c
Demostración de un arreglo de apuntadores a funciones */
#include <stdio.h>
/* prototipos */
void funcion1( int a );
void funcion2( int b );
void funcion3( int c );
int main() {
/* inicializa el arreglo de 3 apuntadores con funciones que toman
un argumento entero y devuelven void */
void (*f[ 3 ])( int ) = { funcion1, funcion2, funcion3 };
int eleccion; /* variable para almacenar la elección del usuario */
printf( "Introduzca un numero entre 0 y 2, 3 para terminar:" );
scanf( "%d", &eleccion );
/* procesa la elección del usuario */
while ( eleccion >= 0 && eleccion < 3 ) {
/* invoca a la función en la ubicación de la elección en el arreglo f, y pasa la elección como argumento */
(* f[ eleccion ])( eleccion );
printf( "Introduzca un numero entre 0 y 2, 3 para terminar: ");
scanf( "%d", &eleccion );
} /* fin de while */
printf( "Termina le ejecucion del programa.\n" );
return 0; /* indica terminación exitosa */
} /* fin de main */
int funcion1( int a ) {
printf( "Usted introdujo %d de manera que invoco a la funcion1\n\n", a );
} /* fin de la funcion1 */
int funcion2( int b ) {
printf( "Usted introdujo %d de manera que invoco a la funcion2\n\n", b );
} /* fin de la funcion2 */
int funcion3( int c ) {
printf( "Usted introdujo %d de manera que invoco a la funcion3\n\n", c );
} /* fin de la funcion3 */