Beruflich Dokumente
Kultur Dokumente
de México
“Facultad de ingeniería - Ingeniería eléctrica
electrónica”
Laboratorio de Estructura de Datos y Algoritmos I
Practica 2:
“Aplicaciones de apuntadores”
Alumna:
Profesora:
Alvarado González Alicia Montserrat
Grupo: 1227
2° Semestre
Fecha de entrega 24/feb/2016
1
OBJETIVO
Utilizar apuntadores en lenguaje C para acceder a las localidades de memoria tanto datos
primitivos como de arreglos.
MARCO TEORICO
Para declarar un apuntador se especifica el tipo de dato al que apunta. El operador ‘*’ y el nombre
el apuntador, la sintaxis es:
Los apuntadores se enlazan a tipos de datos específicos, esto quiere decir que un apuntador solo
se le pueden asignar direcciones de variables del tipo especificado en la declaración del
apuntador.
Un apuntador apunta a una variable que se encuentra almacenada en alguna parte de la memoria
física.
Un operador de dirección &: devuelve la dirección de memoria de una variable que le sigue;
operador unario que regresa la dirección de su operador. Ejemplo:
Main()
{
Int y;
Int *yp;
Y=5;
Yp=&y;
}
2
*py=y;
X=*py + 5;
X=*py+5;
Printf(“%d %d nn”,*py,x);
}
La utilidad de los apuntadores radica en que permiten a un programa ser más potente, dinámico y
flexible, su uso le da al lenguaje c su potencia y la popularidad que ha adquirido, debido a que
permite el acceso de memoria de manera más eficiente, sin embargo, una mala referencia a dicha
memoria provocara en el programa una salida.
Trabajar con apuntadores implica el manejo de direcciones de memoria en la cual residen los datos.
Apuntador null
Un apuntador nulo no apunta a ninguna localidad de memoria, este es muy útil cuando se requiere
indicar al programa que valide cuando el apuntador no está apuntando a nada, es útil para
propósitos de comparación en una estructura condicional.
Apuntador void.
Los apuntadores void son apuntadores que apuntan a cualquier tipo de dato, es decir, no se inicializa
con un tipo de dato especifico, también son llamados apuntadores genéricos. También permite a
una función especificar un parámetro de entrada para recibir cualquier tipo de apuntador sin que
produzca un error de tipos.
Tambien un apuntador es una variable que puede modifica el valor al que apunta, se puede realizar
ciertas operaciones aritméticas con ellas, a un apuntador se le puede sumar o restar un entero n. se
le puede aplicar el operador ++ y --, eso hace que obtenga la dirección del siguiente o anterior
elemento en la memoria de datos.
MATERIALES Y METODOS
3
RESULTADOS
Problemas:
1. Escribir una función que reciba dos arreglos de cadenas. El primero será una palabra y el segundo
una oración. La salida será el número de veces que ocurre la palabra en la oración. Usando
apuntadores para recorrer los arreglos y comparando carácter por carácter.
4
2. Crear dos arreglos, uno de tipo entero y otro de tipo cadena. Primero habrá que recorrer cada
elemento de ambos arreglos con notación de arreglo e imprimir cada elemento en pantalla.
Segundo crear dos apuntadores donde el primero apuntará al arreglo entero y el segundo al arreglo
cadena, los apuntadores deberán de recorrer cada uno de los elementos de los arreglos con
notación de apuntadores y deberán imprimirlos en pantalla.
5
6
7
3. Escribir un programa que genere aleatoriamente N números enteros y los almacene en un arreglo.
Implementar una función que reciba tres arreglos, donde el primero sea el arreglo original, el
8
segundo será un arreglo donde se almacenarán solo los números pares y el tercero un arreglo donde
se colocarán los números impares. Esta función deberá de copiar los números pares del arreglo
original al arreglo de números pares y copiar los números impares del arreglo original al arreglo de
números impares:
Consideraciones:
9
10
11
4. Utilizando un arreglo con 50 caracteres y manejando apuntadores a caracteres, identificar si una
frase es un palíndroma (se lee de derecha a izquierda y de izquierda a derecha de la misma forma).
Por ejemplo: “No di mi decoro, cedí mi don. (de Juan Filloy)”. Quitar los espacios en blanco de la
cadena original. Se deberá declarar un apuntador, llamado i, al inicio de la cadena y otro apuntador,
llamado f, al final. Se deberá ir comparando si los caracteres a los cuales apuntan i y f son iguales. El
apuntador i deberá avanzar hacia el último elemento del arreglo y el apuntador f deberá avanzar
hacia el primer elemento del arreglo hasta que los apuntadores se encuentren o hasta que se
detecte que los caracteres comparados no son iguales.
Además de main, se deberán definir funciones para cada una de las siguientes tareas:
12
13
Conclusiones:
Referencias:
BIBLIOGRAFIA CONSULTADA:
http://www.gayatlacomulco.com/tutorials/tutorc/t66.htm
http://aprendeenlinea.udea.edu.co/lms/men_udea/pluginfile.php/25669/mod_resource/content/
0/documentos/Apuntadores.pdf
http://www.gridmorelos.uaem.mx/~mcruz//cursos/lic/apuntado.pdf
14