Programacion
Introducción a la Informática
Universidad del Cauca
Ing. Sara Donnelly Garcés Agredo
Inicialización de punteros(I):
< Almacenamiento > < Tipo > * < Nombre > = < Expresión>
Si es extern o static,
deberá ser una expresión constante del tipo
expresado.
Si es auto, entonces puede
ser cualquier expresión del especificado.
Ejemplos:
1) La constante entera 0,NULL (cero) proporciona un
puntero nulo a cualquier tipo de dato:
int *p;
p = NULL; //actualización
2
Inicialización de punteros(II):
2) El nombre de un array de almacenamiento static oextern 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” puntero a puntero:
int *punt = (int *) 123.456;
Inicializa elpuntero con el entero.
Inicialización de punteros(III):
4) Un puntero a carácter puede inicializarse en la forma:
char *cadena = Esto es una cadena”;
5) Se pueden sumar o restar valoresenteros a las
direcciones de memoria en la forma: (aritmética de
punteros)
int x;
int *punt = &x+2, *p = &x-1;
6) Equivalencia: Dos tipos definidos como punteros a
objeto P y puntero a objeto Q sonequivalentes sólo si
P y Q son del mismo tipo. Aplicado a matrices:
nombre_puntero = nombre_matriz;
4
PUNTEROS Y ARRAYS
Sea el array de una dimensión:
int mat[ ] = {2, 16, -4, 29, 234, 12, 0,3};
en el que cada elemento, por ser tipo int, ocupa dos bytes
de memoria.
Suponemos que la dirección de memoria del primer
elemento, es 1500:
&mat[0] es 1500
&mat[1] será 1502
&mat[7] será1514
PUNTEROS Y ARRAYS
int mat[ ] = {2, 16, -4, 29, 234, 12, 0, 3};
En total los 8 elementos ocupan 16 bytes.
Podemos representar las direcciones de memoria que
ocupan los elementos del array, los datos que contiene y
las posiciones del array en la forma:
Dirección 1502
2
16
Elemento mat[1]
1504
1506
1508
1510
1512
1514
-4
29
234
12
0
3...
Regístrate para leer el documento completo.