/****************** Array de dos dimensiones ******************/
/* puntero a una matriz
comentar las instrucciones con la variable "puntero" y descomentar las instrucciones con la variable "p" y viceversa
El objetivo es probar 2 opciones de aritmética distintas.
*/
#include <stdio.h>
#define F 4 /* número de filas */
#define C 5 /* número de columnas */
int main()
{
int tabla[F][C] = { { 10, 12, 15, 17, 14 },
{ 22, 20, 23, 25, 21 },
{ 38, 30, 34, 36, 35 },
{ 45, 41, 44, 48, 49 }};
const int k = 10;
int f, c;
int *puntero[F];
int *p; //otro puntero
p=(int*)tabla;
puntero[0]=tabla[0];
puntero[1]=tabla[1];
puntero[2]=tabla[2];
puntero[3]=tabla[3];
/* Multiplicar cada elemento por una constante k */
for (f = 0; f < F; f++)
for (c = 0; c < C; c++) // Para acceder a una columna se hace con esta aritmética de punteros
//*(*(puntero+f)+c) *= k; // Esto es para multiplicar cada valor por la constante k, que es 10. Apunta a la fila y sumo la columna y obtengo direccion de la fila. Con asterisco externo accedo al valor contenido en la direccion apuntada por todo lo demás. Y eso multiplicado por k
p[f*C+c]*=k; // f = numero de filas * numero de columnas que es 5, con eso me muevo por las filas. Y luego sumo c minuscula que es la columna actual
/* Escribir el array */
for (f = 0; f < F; f++)
{
for (c = 0; c < C; c++)
printf("%5d", *(*(puntero+f)+c));
//printf("%5d", p[f*C+c]);
putchar('\n');
}
system("pause");
return 0;
}
Punt a matriz y mult x constante
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario