SOLO COMPARTIMOS CONOCIMIENTOS

sábado, 19 de febrero de 2011

¿Qué es Aritmética de punteros?



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 */
Compartir:

0 comentarios:

Publicar un comentario

ARCHIVO DEL BLOG