2. Apuntadores
Los punteros permiten simular el paso
por referencia, crear y manipular
estructuras dinámicas de datos, tales
como listas encadenadas, pilas, colas y
árboles. Generalmente las variables
contienen valores específicos.
Ejemplo:
int* pint; //Declara un puntero a entero
char* pchar; //Puntero a char
fecha* pfecha; //Puntero a objeto de
clase 'fecha'
3. Apuntadores y funciones
Los apuntadores a funciones son
quizá uno de los usos más confusos
de los apuntadores en C. Los
apuntadores a funciones no son tan
comunes como otros usos que tienen
los apuntadores. Sin embargo, un uso
común es cuando se pasan
apuntadores a funciones como
parámetros en la llamada a una
función.
4. Apuntadores y funciones
Declaración de función Declaración del puntero-a-
función
char* func (char*);
Función que acepta un puntero-a-
char y devuelve un puntero-a-char
char* (*func) (char*);
Puntero-a-función que acepta un
puntero-a-char y devuelve un
puntero-a-char
char const * func ();
Función que no acepta argumento
y devuelve un puntero-a-char
constante.
char const* (*func) ();
Puntero-a-función que no acepta
argumentos y devuelve un
puntero-a-char constante
struct S func (char*);
Función que acepta un puntero-a-
char y devuelve una estructura
tipo S.
struct S (*func) (char*);
Puntero-a-función que acepta un
puntero-a-char y devuelve una
estructura tipo S.
5. Apuntadores y funciones
Declaración de función Declaración del puntero-a-
función
int* func (struct S* Sptr);
Función que acepta un puntero-a-
estructura tipo S y devuelve un
puntero-a-int
int* (*func) (struct S* Sptr);
Puntero-a-función que acepta un
puntero-a-estructura tipo S y
devuelve un punter-a-int
int* (C::* func())(char);
Función que no recibe
argumentos, devuelve un puntero
a función miembro de la clase C
que recibe un char y devuelve un
puntero-a-int.
int* (C::* (*func)())(char);
Puntero-a-función que no recibe
argumentos, devuelve un puntero-
a-función miembro de la clase C
que recibe un char y devuelve un
punter-a-int.
int (*(*f())[10])();
Función que no acepta
argumentos, devuelve un puntero
a una matriz de diez punteros-a-
función que no aceptan
argumentos y devuelven un int.
int (*(*(*f)())[10])();
Puntero-a-función que no acepta
argumentos, devuelve un puntero
a una matriz de diez punteros-a-
función que no aceptan
argumentos y devuelven un int.