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.
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:
|
||
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.