elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  arrays y punteros.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: arrays y punteros.  (Leído 1,713 veces)
4dr14n31t0r

Desconectado Desconectado

Mensajes: 85



Ver Perfil
arrays y punteros.
« en: 24 Septiembre 2016, 00:48 am »

Código
  1. int array[5];
  2. array[0] = 12;
  3. std::cout << &array << std::endl;//1
  4. std::cout << array  << std::endl;//2
  5. std::cout << *array << std::endl;//3

Con el codigo anterior se puede apreciar claramente que la direccion de memoria en la que esta localizado el array (1) coincide con la direccion de memoria a la que apunta el array (2). En otras palabras: los arrays son punteros que se apuntan a si mismos.

Sin embargo, si un puntero se apunta a si mismo, entonces el operador de dereferencia (el asterisco) nos devolvera la direccion de memoria del array otra vez, ya que es lo que contiene la variable. Sin embargo, en vez de eso se nos muestra el int que hayamos guardado ahi. (En este caso, el numero 12). La pregunta es ¿Por qué? Es mas ¿Cómo es posible? Según esto, estamos guardando 2 valores completamente diferentes al mismo tiempo en la misma ubicacion: la direccion de memoria del array(y del primer elemento del mismo array), y el numero 12.

Aqui dejo el codigo completo para que no tengais mas que copiar y pegar directamente:
Código
  1. #include <iostream>
  2.  
  3. int main(int argc, char** argv)
  4. {
  5. int array[5];
  6. array[0] = 12;
  7. std::cout << &array << std::endl;//1
  8. std::cout << array  << std::endl;//2
  9. std::cout << *array << std::endl;//3
  10. return 0;
  11. }

Y aqui el link a un entorno de desarrollo online con el codigo para que no tengais que molestaros en abrir ningun programa para probarlo:
https://goo.gl/7LWmg4


« Última modificación: 24 Septiembre 2016, 00:55 am por 4dr14n31t0r » En línea

geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Re: arrays y punteros.
« Respuesta #1 en: 24 Septiembre 2016, 04:59 am »

 El nombre de un array no es en esencia un puntero, más bien dependiendo del contexto es convertido implícitamente a un puntero al primer elemento como en este caso sucede con array y *array al imprimirlos. También aclarar que al desreferenciar un puntero accedes al contenido apuntado por tal puntero en este caso el primer valor del array.
 


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Punteros y arrays
Programación C/C++
cazagavilan 4 2,550 Último mensaje 14 Abril 2012, 19:32 pm
por cazagavilan
Ayuda con arrays y punteros « 1 2 »
Programación C/C++
nanto 13 5,340 Último mensaje 5 Marzo 2014, 06:17 am
por leosansan
Ayuda con los arrays y punteros y palabras reservadas de C++?
Programación C/C++
Sty16 2 2,964 Último mensaje 23 Junio 2017, 23:38 pm
por MAFUS
ejercicios de arrays y punteros
Programación C/C++
luis9829 0 1,815 Último mensaje 27 Agosto 2017, 03:00 am
por luis9829
Punteros y arrays.
Programación C/C++
Gojira 3 2,370 Último mensaje 4 Marzo 2018, 03:24 am
por Kenji-chan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines