Documente Academic
Documente Profesional
Documente Cultură
11 1
Facultad: Ingeniería
Escuela: Computación
Asignatura: Programación II
Objetivos
Materiales y Equipo
Introducción Teórica
Punteros en C#.
Los punteros son un tipo especial de variable que tiene direcciones de memoria como sus
valores. Por ser una variable, aunque sea especial, su declaración no varía de gran forma con
lo estudiado hasta el momento.
La sintaxis:
<tipo_de_dato>*<nombre_puntero>
El tipo de una variable de tipo puntero se corresponde con el tipo de dato de la variable a la que
apunta. Los punteros pueden ser inicializados cuando se declaran o en un enunciado de la
asignación. Pueden inicializarse a 0, NULL o una dirección específica (cuyo formato se presenta
en hexadecimal); un puntero con un valor NULL apunta a nada.
Para declarar un puntero, debe utilizarse un tipo de dato:
int *ptrEntero;
2 Programación II. Guía No. 11
float *ptrReal;
char *ptrDireccion;
Si se desea declarar varios punteros en la misma línea de código, C# permite hacer lo siguiente:
int* p1, p2, p3;
Luego, no se podrá utilizar un puntero declarado int con variables de tipo char o float. La idea
anterior significa que los punteros deben declararse del mismo tipo de dato al cual apuntan. En
un programa pueden aparecer errores en tiempo de ejecución y advertencias en tiempo de
compilación cuando se define un puntero a determinado tipo de dato y, a continuación, se utiliza
para apuntar a algún otro tipo de dato.
Para entender los punteros y los vectores, es necesario primero conocer cómo se almacenan
los números en la memoria del ordenador. El valor de cada variable en un programa de
ordenador se guarda en una sección de memoria cuyo tamaño está determinado por el tipo de
dato de la variable. La localización de esta sección de memoria es almacenada en la dirección
de la variable.
Por tanto, es así como si cada variable estuviera compuesta de dos partes: su valor y su
dirección de memoria. Cada celda de memoria se puede considerar de una parte con el
contenido, y la otra parte que se almacena en la dirección.
Las direcciones se representan normalmente por un número hexadecimal, pudiendo contener
un carácter, un entero o un real (aunque en realidad todos son almacenados como números
binarios, lo cual es más entendible para la máquina a la hora de compilar los programas).
Una forma de acceder a la información de una variable es por medio de una segunda variable
que contiene la dirección de la variable a la que se pretende acceder. Este tipo de variable se
conoce como apuntador o puntero.
Operadores para Punteros
El operador de dirección (&) es un operador unario que devuelve la dirección de memoria
de su operando.
El operador de indireccón (*) regresa el valor del objeto hacia el cual se apunta.
El puntero this se inicializa para apuntar al objeto para el cual se llama a la función miembro.
Este puntero es muy útil cuando se trabaja con punteros y especialmente en listas enlazadas,
cuando se necesita referenciar un puntero al objeto que se está insertando en la lista.
La palabra clave this hace referencia a la instancia actual de la clase y también se utiliza como
modificador del primer parámetro de un método de extensión.
Procedimiento
Bibliografía
Ejemplo 1:
Uso de punteros y paso por valor y por referencia.
Guía 1
4 Programación II. Guía No. 11
Ejemplo_2
Procedimientos de paso por valor y por referencia.
Programación II. Guía No. 11 5
Ejemplo_3
Uso del puntero this para hacer referencia a los miembros de la clase.
Perfil.cs
Program.cs
6 Programación II. Guía No. 11
Análisis de Resultados
Ejercicio 1:
Desarrollar una aplicación que permita recorrer un vector a través de un puntero. El programa
debe solicitar los datos al usuario y deberá mostrar un menú:
A) Ordenar Ascendente.
B) Ordenar Descendente.
C) Mostrar elemento por elemento.
D) Salir.
Ejercicio 2:
Modificar el ejemplo 3, de manera que sean solicitados los datos desde teclado. Agregar los
campos: Cargo, Salario, Empresa.
Programación II. Guía No. 11 7
Investigación Complementaria
EVALUACIÓN