Punteros
Una variable de tipo puntero contiene la dirección de un objeto de datos o una función. Un puntero puede hacer referencia a un objeto de cualquier tipo de datos; no puede hacer referencia a un campo de bits ni a una referencia.
Algunos usos comunes para punteros son:
- Para acceder a estructuras de datos dinámicas como, por ejemplo, listas enlazadas, árboles y colas.
- Para acceder a elementos de una matriz o miembros de una estructura o clase C++.
- Para acceder a una matriz de caracteres como una serie.
- Para pasar la dirección de una variable a una función. (En C++, también puede utilizar una referencia para hacerlo.) Al hacer referencia a una variable a través de su dirección, una función puede cambiar el contenido de esa variable.
Tenga en cuenta que la ubicación de los calificadores de tipo volatile y const afecta a la semántica de una declaración de puntero. Si alguno de los calificadores aparece antes de *, el declarador describe un puntero a un objeto calificado de tipo. Si alguno de los calificadores aparece entre el * y el identificador, el declarador describe un puntero de tipo calificado.
La tabla siguiente proporciona ejemplos de declaraciones de puntero.
| Declaración | Descripción |
|---|---|
long *pcoat; |
pcoat es un puntero a un objeto que tiene el tipo long |
extern short * const pvolt; |
pvolt es un puntero constante a un objeto que tiene el tipo short |
extern int volatile *pnut; |
pnut es un puntero a un objeto int que tiene el calificador volatile |
float * volatile psoup; |
psoup es un puntero de volatile a un objeto que tiene el tipo float |
enum bird *pfowl; |
pfowl es un puntero a un objeto de enumeración de tipo bird |
char (*pvish)(void); |
pvish es un puntero a una función que no toma ningún parámetro y devuelve un char |
nullptr_t pnull; |
pnull es un puntero nulo que no apunta a ningún objeto o función válidos. |