Sobre un programe de C, urgente!

Hola tengo una duda con un programa de C.Me gustaría que me la aclarases.El programa es el siguiente:
main()
{
int *zPtr;
int number;
int array[5]={1,2,3,4,5};
zPtr=&array[3];
number=zPtr[3];
printf("%d", number);
}
En este programa no me imprime el 4 q es el numero que creo q me tendría q imprimir, el problema no se si será q utilizo el puntero como array, no se cual es el problema. Además el programa si ejecuta pero no me aparece el u me aparece 8421 por ejemplo.
Además no lo entiendo xq al hacer lo mismo en este progrma si hace lo q yo quiero:
main()
{
int *zPtr;
int number;
int array[5]={1,2,3,4,5};
zPtr=&array[0];
number=zPtr[0];
printf("%d", number);
}
En este programa si me hace lo q yo quiero qes imprimir el 1, muchas gracias me gustarñia q me contestases lo más pronto posible es q tengo examen el sábado, muchas gracias

1 Respuesta

Respuesta
1
El error esta en que cuando pones &array[0], le estas dando la dirección del primer elemento, pero tu en realidad quieres la dirección del array, que es &array
Asi cuando pongas zPtr[3], estaras accediendo realmente a la posicion &array + 3 elementos.
En resumen, el programa quedaría así:
main()
{
int *zPtr;
int number;
int array[5]={1,2,3,4,5};
zPtr=&(array);
number=zPtr[3];
printf("%d", number);
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas