Está en la página 1de 10

INSTITUTO TECNOLÓGICO DE MATAMOROS

6.0 Punteros
Programación Básica

M.D. Gerardo García Vela


ING. Mecatrónica

Estrada Hernández Alejandro


Apolinar
García Hernández Jesús Fredy
30/05/2019
Índice
 6.1 Declaración e Inicialización…………….. 1
 6.2 Operadores de apuntador………………...4
 6.3 Uso de apuntadores………………………5
 6.4 Llamadas por valor y referencia………….6
 Fuentes Bibliográficas……………………….8
 6.1 Declaración e Inicialización.
Para entender de lleno a los punteros y su uso dentro de C++, primero
debemos saber y comprender qué es. El puntero es una variable que su uso es
el de conocer la dirección de memoria de otra variable, además de otra
variable que contenga un dato.

Analicemos la variable que vamos a usar en este ejemplo.

int *dirección_puntero

El cual tiene esta estructura:

tipo *var-puntero.

Al declarar la variable se puede notar que comienza con tipo, el cual puede ser
primitivo o derivado, ya sea int, float, char etc. El nombre de la variable va
después del modificador *, el cuál nos quiere decir “puntero hacia…”

Al principio es un poco confuso, pero lo mejor es ver un ejemplo para así


facilitar la comprensión.

Como puede observarse, declaramos una variable llamada x que contiene un


valor, para mostrarlo en pantalla solo tenemos que hacer como lo hemos
hecho desde siempre, imprimiendo la variable. Ahora, lo interesante aquí es lo
que se le agrega al principio de la variable, es decir sus operadores, los cuáles

1
harán la acción de convertirse en punteros, más adelante profundizaremos en
el tema de los operadores.

Vemos que efectivamente el programa nos está mostrando en pantalla el valor


de la variable x, además de su espacio de memoria gracias al operador &.

Todo bien aquí, ahora vamos a modificar la sintaxis del programa de manera
que me arroje los mismos resultados pero ahora gracias a la utilización de
punteros.

Se puede apreciar que agregamos otra variable puntero llamada


“*dirección_x” que comienza con otro operador usado en punteros que es el
“*”. Seguido de ello igualamos esa variable sin el operador “*” a que sea igual
a la dirección de x, lo cual podemos ver que es así debido a que empieza con
&. Por último lo que cambia es la salida que como se puede ver, para que nos
muestre el valor agregamos ahora sí el puntero *dirección_x, la función que
esto tiene es mostrarnos el dato que encuentre en esa dirección de memoria, el
cual es de 1. Lo siguiente es hacer que nos muestre la dirección de memoria,

2
para lograrlo esta vez agregamos dirección_x sin el asterisco, pues como ya
vimos está igualada a la dirección de la variable.

Ya entendido esto, podemos pasar a profundizar en los operadores “&” y “*”.

Aspectos importantes:

Como en todo lenguaje de programación, lleva sus reglas y es indispensable


cumplirlas al pie de la letra para así no dar lugar a errores que puedan derivar
en el desorden de un programa entero.

Debemos tener en cuenta que el tipo de dato del puntero debe ser el mismo de
la variable a la cual se le asigne la posición de memoria, cabe mencionar que
estos tipos de datos pueden ser cualquiera. Cuando se quiera usar el valor de la
posición de memoria apuntada se debe poner el “*” antes de la variable en
cuestión, ya que de no usarlo no estaremos usando el valor que haya en esa
posición de memoria.

3
6.2 Operadores de apuntador.
Hay dos operadores indispensables a la hora de trabajar con punteros. Como
se puede observar claramente en los ejemplos utilizados, hemos visto que
antes de las variables hemos colocado dos operadores. Estos son el “&” que se
conoce como ampersand, y el “*”. Estos punteros trabajan de distinta manera,
según sea lo requerido. Si colocamos un & estamos indicando que queremos
la dirección de memoria de dicha variable. Tal como se puede observar.

Ahora, si queremos trabajar un puntero que nos diga el dato que haya en ese
espacio, se utiliza un * antes del nombre. Para entender mejor esto, es
ordenarle que nos muestre lo que se encuentre ahí, en ese específico lugar de
memoria y en este caso el valor que se encuentra ahí es el número 10, el cual
es dato entero.

4
6.3 Uso de apuntadores.
Los apuntadores son usados principalmente para crear estructura de datos, y el
uso más común es para el ahorro de memoria gracias a que el tipo de memoria
usada es dinámica. La memoria dinámica permite que se expanda la capacidad
de datos o se eliminen y se usen los necesarios. Para esta función se utiliza los
operadores new y delete.

New se encarga de reservar el número de bytes necesarios para poder declarar.

Delete se coloca al final del programa, es el que borra el bloque de bytes


reservado al principio para así en unión a new lograr usar sólo el número de
bytes necesarios.

En este programa se muestra cómo un puntero es el que recoge cuántos datos


se van a usar, para a posteriori usarlo con un bucle el cual está creado para
recoger la cantidad de datos que se metieron, y así usar lo necesario.

5
6.4 Llamadas por valor y referencia.
Por valor:

Cuando creamos una variable esta solo existe en una función y solo en esa;
gracias a los parámetros podemos pasar el valor de una variable a otra.

Veremos un ejemplo donde una función recibe solo el valor de x y devuelve el


resultado, solo tomando el valor de x y esto es por lo que se llama por valor.

Vemos que la función está invocando a la variable a dentro del main, la cual
es la que se le toma el valor para realizar la operación que viene en el cuerpo
del programa.

6
Por referencia:

Son variables que, al igual que los puntos contienen una dirección de
memoria. A la hora de declararse también debe inicializarse, a la otra variable
de la cual sea un alias y esto se hace con la forma: tipo &nombre.

Cuando queremos que una función modifique una variable que no esté en la
función, tenemos que hacerlo por medio de los punteros, pero ahora siendo
referencias. Lo que hacemos es pasar el valor de una variable por medio de un
puntero para después acceder al contenido.

7
Fuentes Bibliográficas
Fco. Javier Ceballos, Curso de Programación C/C++, 2da edición.
México D.F, Octubre 2009. ALFAOMEGA EDITORIAL.
https://www.youtube.com/watch?v=_pcfFMFs9-g

https://www.programarya.com/Cursos/C++/Estructuras-de-
Datos/Punteros

http://aprendeenlinea.udea.edu.co/lms/men_udea/pluginfile.php/256
68/mod_resource/content/0/documentos/ContenidoOnline/EdatosI/o
peradores_para_trabajar_apuntadores.html

https://francysystem.blogspot.com/2015/02/memoria-dinamica.html

http://codigomaldito.blogspot.com/2006/01/memoria-dinamica-new-
y-delete.html

https://www.genbeta.com/desarrollo/punteros-y-referencias

También podría gustarte