[C con Clase] matrices y punteros
rodolfo rosso paz
rodolforossopaz en hotmail.com
Dom Jun 10 05:08:29 CEST 2007
/*
Hola.-
Agradezco a Steven y a Salvador por sus explicaciones acerca de porque
strcpy(), y no una copia simple de punteros, como siempre muy
didacticos,
asi que todo aclarado.
Mi duda de ahora, dirigida a quien tenga el tiempo y las ganas, es la
siguiente,
he estado experimentando un poco con matrices y punteros; no es que no
lo entienda
del todo, pero tengo algunos claros que me gustaria que alguien con
experiencia
me pudiera explicar.
En la corrida del programa de abajo, en la tercera columna estan mis
apreciaciones
de lo que supongo que hace el compilador, y en esa misma columna estan
incorporadas
mis preguntas, si alguien pudiera cortarlo y correrlo, le estaria muy
agradecido si
pudiera corregir mis apreciaciones (si estuvieran equivocadas) y
contestar las
3 preguntitas.
Espero no estar abusando de su generosidad, una vez mas gracias
y que Dios los bengiga.
Rodolfo
*/
#include <iostream>
using namespace std;
void ImprimeMatriz( double mat_ref[][4] )
{
// cout << setfixed(2);
for(int i = 0; i<=2; i++)
{
for(int j = 0; j<=3; j++)
cout << mat_ref[i][j] << "\t";
cout << "\n";
}
cout << "\n";
}
int main()
{
double mat[3][4] = {{0.0,0.1,0.2,0.3},
{1.0,1.1,1.2,1.3},
{2.0,2.1,2.2,2.3}};
ImprimeMatriz(mat);
int i = 1, j = 2;
double* p = &mat[0][0];
cout << "mat " << mat << "\tmuestra la direccion final a
la que\n";
cout << "\t\t\t\tapunta mat, osea la de
mat[0][0]\n";
cout << "&mat " << &mat << "\t1. porque no muestra la
direcc de mat?\n";
cout << "*mat " << *mat << "\tmuestra el contenido de la
direccion\n";
cout << "\t\t\t\tcontenida en mat\n\n";
cout << "\nmat+1 " << mat+1 << "\tmuestra la direccion final
a la que\n";
cout << "\t\t\t\tapunta o sea la direccion de
mat[1][0]\n";
cout << "*(mat+1) " << *(mat+1) << "\tmuestra el contenido de la
direccion\n";
cout << "\t\t\t\tque contiene mat+1\n";
cout << "mat[1] " << mat[1] << "\tdireccion final a que apunta
mat[1]\n";
cout << "&mat[1] " << &mat[1] << "\t2. porque no muestra la
direccion de mat[1]\n";
cout << "*mat[1] " << *mat[1] << "\t\tmuestra el contenido de
la direccion\n";
cout << "\t\t\t\tque contiene mat[1]\n\n";
cout << "\n&mat[0][1] " << &mat[0][1] << "\t3. porque aqui si
muestra la direccion\n";
cout << "\t\t\t\tde mat[0][1]\n";
system("PAUSE");
return 0;
}
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.latam.msn.com/
Más información sobre la lista de distribución Cconclase