Teniendo
en cuenta que un puntero lo que contiene es un número entero (ver Punteros),
existe la posibilidad de operar con ellos. Más concretamente de sumar o restar
valores, modificando por este sistema la dirección a la que apuntan.
Concretamente puede ser de utilidad en las estructuras que se guardan de forma
secuencial.
Un puntero apunta a una dirección
de memoria.
El lenguaje C permite sumar o
restar cantidades enteras al puntero, para que apunte a una dirección
diferente: aritmética de punteros.
Consideremos un puntero a
enteros:
int*
zt;
zt va apuntar a cierta dirección
de memoria:
Pero también tendrán sentido las
expresiones zt +1, zt +2, etc. La expresión zt +k es un puntero que apunta a la
dirección de zt sumándole k veces el espacio ocupado por un elemento del tipo
al que apunta (en este caso un int):
Ejemplo de aritmética de punteros.
int vector [100]; /* un vector de enteros */
int * zt; /* un puntero a enteros */
zt = &vector[0]; /* zt apunta al principio del vector
*/
* zt = 33; /* igual que vector [0] = 33 */
*( zt +1) = 44; /* igual que vector[1] = 44 */
*( zt +2) = 90; /* igual que vector[2] = 90 */
0 comentarios:
Publicar un comentario