• Sábado 14 de Diciembre de 2024, 18:57

Autor Tema:  array y puntero  (Leído 1568 veces)

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
array y puntero
« en: Domingo 27 de Septiembre de 2009, 22:13 »
0
Tenemos un array

int array[3] = {10, 20, 30};

para acceder al primer elemento mediante un puntero podemos acceder como *array, pero como accederiamos al segundo y tercero mediante un puntero?

Gracias.

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: array y puntero
« Respuesta #1 en: Domingo 27 de Septiembre de 2009, 22:36 »
0
Bueno ya no hace falta, sería *(array+1) para el segundo elemento y así sucesivamente

Luciano9

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: array y puntero
« Respuesta #2 en: Domingo 27 de Septiembre de 2009, 22:45 »
0
int *array[3];

array++ o array-- aumenta o disminuye el puntero.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: array y puntero
« Respuesta #3 en: Lunes 28 de Septiembre de 2009, 11:19 »
0
Cita de: "Luciano9"
int *array[3];
Ejem, no. Eso es un array de punteros a enteros.

De todas formas, si usas un array, usa índices (array[0], array[1]...) que para eso están, para simplificar el asunto  ^_^

Luciano9

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: array y puntero
« Respuesta #4 en: Lunes 28 de Septiembre de 2009, 15:15 »
0
Bue no sería algo asi?:

int array[30];

int *p=array;

y asi, no puedo estar tan equivocado...

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: array y puntero
« Respuesta #5 en: Lunes 28 de Septiembre de 2009, 16:14 »
0
Sí, así sí, que no es lo mismo que lo de antes. Pero puedes usar la misma variable array  ;)

Código: C
  1. int array[3] = {10, 20, 30};
  2.  
  3. printf("%d", *array);
  4. printf("%d", *(++array));
  5.  
Resumiendo, en C, los vectores (arreglos, matrices, arrays...) son simplemente punteros. Lo puedes comprobar con:

Código: C
  1. printf("0x%x", (int)array);
  2.  
¡Saludos!