< Almacenamiento > < Tipo > * < Nombre
> = < Expresión >
Si <Almacenamiento> es extern o static,
<Expresión> deberá ser una expresión constante del tipo <Tipo>
expresado.
Si <Almacenamiento> es auto, entonces
<Expresión> puede ser cualquier expresión del <Tipo> especificado.
Ejemplos:
1. La constante entera 0, NULL (cero) proporciona un
apuntador nulo a cualquier tipo de dato:
int *p;
p = NULL; //actualización
2. El nombre de un arreglo de almacenamiento static o extern se
transforma según la expresión:
a.
float mat[12];
float
*punt = mat;
b.
float mat[12];
float
*punt = &mat[0];
3. Un “cast” apuntador a apuntador:
int *punt = (int *) 123.456;
Inicializa el apuntador con el entero. Esto
es, en la dirección a la que apunta la variable punt se almacena el valor 123.
4. Un apuntador a carácter puede inicializarse en la forma:
char *cadena = Esto es una cadena”;
5. Se pueden sumar o restar valores enteros a las
direcciones de memoria en la forma:
(aritmética de apuntadores)
static int x;
int
*punt = &x+2, *p = &x-1;
6. Equivalencia: Dos tipos definidos como apuntadores a objeto P y apuntador a objeto son equivalentes
sólo si P y Q son del mismo tipo. Aplicado a
matrices:
nombre_apuntador = nombre_matriz;
Declaración e inicialización de apuntadores
No hay comentarios:
Publicar un comentario