Me disculpo por preguntar dos veces seguidas, en realidad antes de preguntar de nuevo, me tome la molestia de googlear mucho. Pero realmente sentí que se contradecían las cosas, así que decido volver a preguntar, pero repito.. siento preguntar dos veces seguidas.
Bueno, el código es el siguiente:
Código:
#include<iostream>
using namespace std;
int main(){
int numeros[] = {1,5,9,7,4,3};
int *dir_numeros;
dir_numeros = &numeros[0]; // Tambien, por simplicidad podemos colocar 'números', en lugar de '&numeros[0]'
for(int i=0; i < 6; i++){
cout<<*dir_numeros++;
}
/*
cout<<*dir_numeros;
dir_numeros++;
cout<<*dir_numeros;
*/
return 0;
}
Tanto lo que esta comentado, como el for que esta en el main, me imprimen lo siguiente:
Citar
159743
Lo que estoy haciendo, es simplemente mostrar los valores del arreglo, pero esta vez, haciendo uso de punteros.
Para no hacer esto tan largo, la duda de acuerdo a lo anterior es la siguiente:
int numero = 5;
int *dir_numero = №
cout<<*dir_numero; "Esto imprime el valor"
cout<<dir_numero; "Esto imprime la dirección de memoria de la variable a la que apunta"
Teniendo eso claro, como es posible que en el for se use el ++ "de incremento" y este me imprima los valores del array?, es decir... Si uno se fija, ahí se esta usando el *, por lo que debería incrementar en uno dicho valor (1++) "porque la dirección que almaceno es la del primer elemento del array, por eso el 1".
En cambio, si vemos lo que esta comentado, es algo que hice yo, que funciona igual, pero que para mi tiene lógica. Porque esta vez lo que incremento es la dirección de memoria a la que apunta el puntero (mas que incrementar, es como seguir a la siguiente dirección de memoria, pues un arreglo almacena los datos de forma contigua, y claro... ahora sí recorrería el arreglo lógicamente.
entonces:
¿Porque el for hace lo mismo que lo que esta comentado, si este lo que incrementa es el valor del arreglo y no su dirección de memoria?
Muchas gracias, y perdón por extenderme.