Вы находитесь на странице: 1из 10

ESCUELA SUPERIOR POLITÉCNICA DE

CHIMBORAZO

FACULTAD DE INFORMÁTICA Y
ELECTRÓNICA

ESCUELA DE INGENIERÍA EN SISTEMAS

TEMA:
ARREGLO DE FUNCIONES

AUTOR:
PAÚL MOREIRA A.

RIOBAMBA - ECUADOR
2010
INTRODUCCIÓN

Los punteros son variables que como su nombre lo indica apuntan, es decir, poseen
la dirección de memoria de otras variables y a la vez nos permiten tener acceso a
ellas.

Son un tipo especial de datos C++ cuyo fin específico es almacenar direcciones de
objetos. Comparten las características de las variables. Es decir: tienen un valor;
pueden ser asignados; tienen un álgebra específica (se pueden realizar con ellos
determinadas operaciones); pueden ser almacenados en matrices; pasados como
parámetros a funciones y devueltos por estas.

La utilización de punteros es una herramienta muy importante ya que nos brinda


rapidez y flexibilidad en el programa; también es una forma cómoda y directa para
el manejo de variables complejas, argumentos, parámetros, etc.
OBJETIVOS

 Comprender la forma de utilización y la importancia del manejo de punteros.


 Tener un conocimiento sólido de los conceptos básicos de array de punteros y
puntero a puntero para que lo podamos aplicar en la práctica.
 Comprender la viabilidad del manejo de punteros según sus distintos métodos
de utilización.

MARCO TEÓRICO

ARREGLO DE PUNTEROS

Un array multidimensional puede ser expresado como un array de punteros en


lugar de como un puntero a un grupo contiguo de arrays. En estos casos el nuevo
array será de una dimensión menor que el array multidimensional. Cada puntero
indicará el principio de un array de dimensión (n-1).

En términos generales, un array bidimensional puede ser definido como un array


unidimensional de punteros escribiendo:

en lugar de la definición convencional:


similar a esto un array ndimensional puede ser definido como un array de
punteros de dimensión (n-1) escribiendo:

en lugar de:

en esta declaración:

- tipo-dato es el tipo de datos de array n dimensional original.


- array es el nombre del array.
- expresión 1, expresión2,... son expresiones enteras positivas que
indican el máximo número de elementos del array con cada índice

NOTA: Notar que el nombre del array precedido por un asterisco no está
encerrado entre paréntesis en este tipo de declaración.

La regla de precedencia de derecha a izquierda asocia primero el par de paréntesis


cuadrados con array, definiéndolo como un array. El asterisco que lo precede
establece que el array contendrá punteros. …………………………………………………

Igualmente, se pierde la expresión (expresión n) más a la derecha de la definición,


cuando definimos un array de punteros. Mientras que la primera expresión
(expresión 1) más a la izquierda de la definición se omite, cuando se define un
puntero a un grupo de arrays.……………………………………………………………………….
PUNTEROS A PUNTEROS

En la mayoría de los casos los punteros apuntan directamente a un dato, y al


emplear el operador * se obtiene el valor del dato al que apuntan. Si se declara una
matriz de punteros, en realidad se están empleando punteros a punteros. También
se pueden definir un puntero a otro puntero de forma explícita. La forma general
de declarar un puntero a puntero es:

En la mayoría de los casos, los punteros apuntan directamente a un dato y, al


emplear el operador * se obtiene el valor del dato al que apuntan.

Un puntero a otro puntero contiene la dirección de éste.


Se puede definir un puntero a otro puntero de forma explícita:
#include <stdio.h>
void main()
{
float var, *p1, **p2, ***p3;
var=5.2;
p1=&var;
p2=&p1;
p3=&p2;
printf(“%.1f %.1f %.1f %.1f \n”,var,*p1,**p2,***p3);
}

La salida por pantalla de este ejemplo será:


5.2 5.2 5.2 5.2
El número de asteriscos que se deben emplear depende del anidamiento de
punteros hasta llegar al dato final.

En general, para especificar que una variable es un puntero a un puntero, la


sintaxis utilizada es:

tipo **varpp;

Donde tipo especifica el tipo de objeto apuntado después de la indirección. Puede


ser cualquier tipo, incluyendo tipos definidos por el usuario.

EJERCICIOS

 ARRAY DE PUNTEROS

Ejemplo: A continuación se muestra la reserva de una matriz bidimensional 3x3


con un array de punteros, en ella se realiza la reserva de memoria por filas,
posteriormente asignamos valores consecutivos (a partir de 1) a cada una de las
celdas.
Ejemplo: A continuación se muestra otro ejemplo en el que se realiza una reserva
de memoria por filas, del array de punteros, y posteriormente, se pasa dicho array
a una función, la cual se encargará de rellenarla de valores, para que finalmente sea
devuelta al programa principal para que nos saque por pantalla dichos valores, que
fueron introducidos en la función.
 PUNTERO A PUNTERO
CONCLUSIONES

Los principales usos, que tienen, los punteros, son los siguientes:

 Nos ayuda, para que una función devuelva más de un valor. Por ejemplo, una
función que devuelva un vector de enteros, en dicha función mandamos la
dirección del primer elemento a la función principal, y a partir de ella,
imprimimos todos los valores contenidos en el vector.

 Mejor uso de la memoria dinámica. El uso de punteros, ayuda a ahorrar
memoria y por consiguiente, hace más efectivo el uso y administración de la
misma.

RECOMENDACIONES

Debemos tener mucho cuidado con el manejo de punteros ya que programándolos


se pueden presentar problemas prácticos.

Los punteros son además una cosa muy delicada, cualquier pequeño despiste con
ellos puede hacer que nuestro programa se "caiga" inesperadamente o de
resultados muy extraños.
BIBLIOGRAFÍA

 http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap8/f_cap810.htm

 http://www.chuidiang.com/clinux/funciones/punteros.php

 http://www.monografias.com/trabajos38/manual-programacion/manual-

programacion-c4.shtml

 http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap8/f_cap84.htm

 http://www.sedice.com/modules.php?name=Forums&file=viewtopic&t=12

809 concepto

 www.zator.com

Вам также может понравиться