Cargando la página...

Usted está aquí:

Tutorial de punteros

Publicado por Gastón el 31.08.2007 23:09:56 en C++ - Nivel Intermedio

Avatar de CID
Avatar de

En este artículo se intenta explicar en forma detallada que son, para que sirven y las práticas más comunes del uso de punteros en el lenguaje C++.

Página 01 02 03 de 03 | Versión completa


Los arrays no pueden ser declarados como variables referencia, porque ya tienen una forma propia y natural de ser pasados como argumentos a una función. Pero primero definamos como asignar un array de una dimensión a un puntero.

int array[5];
int *p;
p = array; // p = &array[0]; la direccion del primer elemento [0]


Para un array de 2 dimensiones

int array[5][4];
int *p;
p = &array[0][0]; // la direccion del primer elemento [0][0]


Para un array de 3 o mas dimensiones (tres en este ejemplo).

int array[5][4][3];
int *p;
p = &array[0][0][0]; // la direccion del primer elemento [0][0][0]


Por lo que un array se puede pensar como un puntero a la dirección inicial de memoria donde comienza.
Creamos un procedimiento que inicialice el array de una dimensión, para esto podemos definirlo de varias maneras, la primera pide un array de enteros de 5 elementos, la segunda un array de enteros con cantidad de elementos desconocidos, la tercera un puntero a un entero y la última un array de 4567 elementos, en realidad todas están pidiendo un puntero a la dirección del primer elemento del array.

void inicializar(int a[5])
//o void inicializar(int a[])
//o void inicializar(int *a)
//o incluso void inicializar(int a[4567])
{
for(int i = 0; i < 5; i++)
  a[i] = 0;
}


Para hacer uso de ésta función utilizamos éste formato de llamada. Las dos formas son equivalentes.

int array[5], *p;
p = array;
inicializar(array);// o inicializar(p);


Para el caso del array de dos dimensiones:

void inicializar(int a[5][4])
//o void inicializar(int a[][4])
//o incluso void inicializar(int a[4567][4])
{
for(int i = 0; i < 5; i++)
  for( int j = 0; j < 4; j++)
    a[i][j] = 0;
}


int array[5][4];
inicializar(array);


Para el caso del array de tres dimensiones:

void inicializar(int a[5][4][3])
//o void inicializar(int a[][4][3])
//o incluso void inicializar(int a[4567][4][3])
{
for(int i = 0; i < 5; i++)
  for( int j = 0; j < 4; j++)
    for( int k = 0; k < 3; k++)
      a[i][j][k] = 0;
}


int array[5][4][3];
inicializar(array);

Página 01 02 03 de 03 | Versión completa

Descargas asociadas al artículo:

No existen descargas asociadas

Estadisticas:

Artículo leido 8524 veces con un puntaje de 10.00 pts

Comentarios.

Sus comentarios son importantes.

1
03
junio
2008

YUBITZA aportó:

me parece muy bueno el tutorial
2
10
noviembre
2008

Jordi Puig aportó:

genial! no soy ingeniero ni programador pero esto se entiende perfectamente. Seguid asi!

Debe estar identificado para agregar un comentario