Hola a todos, buenos dias.
Tengo una duda sobre el incremento de un puntero a int.
Si reemplazamos B por: printf("ptr + %d = %d\n", i, *ptr++);
Imprime los valores en el orden correcto.
Pero si en cambio reemplazamos B por: printf("ptr + %d = %d\n", i, *(++ptr));
Imprime los valores siguientes a la posición original.
Yo había leído que ptr++ equivale a ++ptr, pero como se puede ver en este ejemplo, la relación no se cumple.
¿Es realmente así o estoy equivocado?
Gracias!
Tengo una duda sobre el incremento de un puntero a int.
Código (c) [Seleccionar]
#include <stdio.h>
int mi_arreglo[] = {1,23,17,4,-5,100};
int *ptr;
int main(void)
{
int i;
ptr = &mi_arreglo[0];
printf("\n\n");
for (i = 0; i < 6; i++)
{
printf("mi_arreglo[%d] = %d ", i, mi_arreglo[i]); /*<-- A */
printf("ptr + %d = %d\n",i, *(ptr + i)); /*<-- B */
}
return 0;
}
Si reemplazamos B por: printf("ptr + %d = %d\n", i, *ptr++);
Imprime los valores en el orden correcto.
Pero si en cambio reemplazamos B por: printf("ptr + %d = %d\n", i, *(++ptr));
Imprime los valores siguientes a la posición original.
Yo había leído que ptr++ equivale a ++ptr, pero como se puede ver en este ejemplo, la relación no se cumple.
¿Es realmente así o estoy equivocado?
Gracias!