Hola a todos y que tengan un muy buen día.
int (*a)[35]; //declara un apuntador a un arreglo de 35 enteros.
int *a[35]; //declara un arreglo de 35 apuntadores a enteros.
Estudiando apuntadores en c me encontré con estas 2 declaraciones pero no las entiendo, alguien seria tan amable de poner algunas líneas de código para comenzar a entender algo del tema?.-
Es todo, intenté hacer un poco de práctica pero no logro hacer que el programa corra y no tengo nada para mostrar.-
Saludos.
Daniel
1. int *a[35] - significa que a es un array de punteros es decir cada miembro del array a es un puntero de tipo entero, cada miembro del array puede contener la dirección de un entero.
#include<stdio.h>
int main()
{
int b = 3;
int c = 4;
int *a[2] = {&b, &c};
printf("a[0] = %d, a[1] = %d\n", *a[0], *a[1]);
return 0;
}
2. int (*a)[35] - aquí a es un puntero a un array de 35 enteros, es decir a apunta a un array que contiene treita y cinco enteros.
#include<stdio.h>
int main(void)
{
int a[5] = { 0, 1, 2, 3, 4 }, i;
int (*p)[5];
p = &a;
for (i = 0; i < 5; ++i)
printf("%d ", (*p)[i]);
return 0;
}
Hola Coper.
Muchas gracias por ocuparte, que bien explicado, me queda todo claro y espero contar con tu ayuda toda vez que exponga mis dudas, hago este pedido porque los grandes genios históricos que ayudaban en este foro parecen que han desaparecido todos.-
Saludos.
Daniel