apuntadores
Recientemente comencé a conocer el funcionamiento de los punteros, que es un tema algo complejo de dominar, por lo que realizo este post para explicar el concepto básico y uso.
Los punteros son variables que referencian un lugar en memoria en donde se almacenan otras variables, es decir almacena una dirección de memoria, y se declaran asi: “Tipo de dato al que apuntara” * “Nombre de la variable”, por ejemplo Int *nuevo me creara un puntero que apuntara a una variable de tipo entero, le podemos dar como valor la dirección de otra variable antecediendo un “&”( Int *nuevo = & variable) o que me busque espacio en memoria con la sentencia “new”( Int *nuevo = new int). graficamente podríamos representarlo asi:

Existen dos formas de pasar parámetros a una función, una es por valor y la otra es por referencia. Cuando pasamos parámetros por valor mandamos los datos , como por ejemplo : insertar(23); en donde estamos pasando el entero 23. Cuando pasamos parámetros por referencia mandamos la dirección de memoria donde se ubica la variable, y en la función nos recibirá la dirección un puntero. la dirección de una variable se envía así: insertar(& variable); y en la función nose recibirá la dirección un puntero por ejemplo entero: function insertar(int *recivo){, Al hacer esto permitimos la manipulación desde la función de la variable de la cual pasamos la dirección, y graficamente seria algo así:
Esta es una forma sencilla de explicar el funcionamiento de los punteros.