next up previous contents
Next: 5.4.2 Tipos de operaciones Up: 5.4 Aritmética de punteros Previous: 5.4 Aritmética de punteros   Índice General

5.4.1 Contexto

Se debe tener en cuenta que puntero+x apuntará a la dirección de puntero sumándole x veces el espacio ocupado por un elemento del tipo al que apunta, no el número de bytes.

Figura 5.4: Suma sobre un puntero a integer
\includegraphics[width=130mm]{punteros/images/aritmetica1.eps}

El programa mostrado a continuación nos muestra la diferencia entre considerar un puntero a integer y un puntero a char, en lo que se refiere a la suma:

  \includegraphics[width=0.7cm]{im/imagen_ejemplo.eps} Ejemplo
   
 
1punteros/aritmetica/ejemplo_arit_punteros.c
   

El resultado de ejecutar 5.3el código anterior es:

Tamaño de int: 4
Tamaño de char: 1
Distancia entre punteros sucesivos a int : 4
Distancia entre punteros sucesivos a char: 1

Queda clara la importancia entre declarar un puntero de un tipo o otro. Ambos punteros del ejemplo ocupan lo mismo, ambos apuntan a direcciones de memoria del sistema, pero cuando el compilador tiene que generar código para realizar operaciones aritméticas, lo hace de manera distinta en función del tipo de puntero.



Notas al pie

... ejecutar5.3
Una vez más, recordamos que el tamaño de las variables en C es dependiente de la plataforma sobre la que compilemos/ejecutemos

next up previous contents
Next: 5.4.2 Tipos de operaciones Up: 5.4 Aritmética de punteros Previous: 5.4 Aritmética de punteros   Índice General
Ramon Pons Vivanco 2003-10-31