Páginas

viernes, 17 de enero de 2020

No me apuntes con eso! D:

Sabés cual es el problema con la gente de hoy? Es que se volvieron todos una manga de putos y maricones.
No pará no hablo del movimiento elgetevé. Hablo de otra cosa.

Mucha gente le tiene miedo al concepto de "apuntador" o "puntero" dicen que es dificil, dicen que no se entiende, dicen que soy aburrido.
Yo lo único que te puedo decir es que bobo, gordo y un cagón. No servís ni para ir a la cancha.
    No hay peor ciego que aquel que no quiere escuchar.

Las malas lenguas dicen que fueron los Coreanos quienes inventaros semejante salvajada, pero no, los punteros existen desde que la gente maleducada decidió apuntar con el dedo.

Qué es un apuntador?
Un apuntador es una variable que apunta a otra. Es decir si yo tengo una variable entera con un valor pongamosle:
int edad = 3;
Mi variable de apuntador, pude hacer referencia a la variable "edad":
int *puntero_a_entero = &edad;
Y usarse para mostrar el valor, de "edad" pero usando la variable "puntero_a_entero":
cout << *puntero_a_entero;

Lo cual mostraría el valor de 3.

Resultado de imagen para shrek face  
RE util

Y ... es medio como cuando tu viejo maneja, digamos... tiene la luz de guiño pero no la usa para nada el cornudo.

Cómo uso una variable de apuntador?

Como ya se dijo antes, la variable de apuntador (o puntero) se usa principalmente para apuntar a otra variable.
Una variable de apuntador sigue las mismas reglas que una variable normal, en cuanto a alcance(o ámbito), nomenclatura y tiempo de vida. Sin embarguen la variablen no almacena un tipo de dato concreto sino mas bien una direccion de memoria.

Si una variable de tipo int es capaz de almacenar un valor numerico,. Una variable de apuntador es capaz de almacenar una dirección de memoria.

Angora, para obtener la dirección de memoria de otra variable se usa el operador coreano de obtencion de dirección en memoria RAM, el operador AMPERAND-SAMAA
ete  que etá acá:

&

Vos usando esa cagadita y el nombre de una variable de cualquier tipo, ya sea int, char, float, double, incluso otro puntero, te devuelve la dirección de memoria en la que se aloja dicha variable.
Osea, si yo hago esto en mi programa de C++:
cout << &edad;
Te tiene que salir un numero en hexadecimal, que representaría la posición en memoria en donde está la variable edad.
Recordemos que una variable es un espacio en memoria ram capaz de almacenar un valora por vez. El operador de direccion & me devielve esa direccion.

Volviendo al ejemplo de mas arriba de la cara de chuerk, teniamos que:

int edad = 30;
Ahora si yo quiero crear un apuntador que apunte a la variable edad, usaríamos el operador coreano de peticion de dirección, recordemos pues, que una variable de apuntador contiene una direccion de memoria.
La morfologia de un apuntador, tiene adicionalmente en nombracion un asterisco:

*
Si yo quiero apuntar, en este caso a una variable entera. Entonces mi apuntador debe parecerse así como esto:

int * ptr;


Lo cual nos dice "ptr es un apuntador a un entero". Esto de anteponer el tipo de dato, es escencial puesto que los diferentes tipos, ya sea int, char, float, etc, en memoria ocupan diferente espacio en bytes, entonces es necesario antes especificar el tipo de dato a apuntar.
Ahora, de nuevo la variable apuntador recibe como valor una direccion de memoria, no te olvides no seas boludo, no te hagas poner un 1 de arriba en la prueba.

Luego, cuando creamos el puntero tenemos que inicializarlo con la dirección de alguna variable.
Entonces tenemos que:
int edad = 30;
int *ptr= &edad;

Ya con eso mi variable petero, perdon ptr, apunta a "edad", pero pasa algo genial si hacemos:
cout << ptr;

Y es que nos va a mostrar la direccion de la variable "edad", esto porque como dije 4 veces arriba, las variable de puntero almacenan una direccion en memoria, por lo tanto vamos a mostrar justamente eso, su contenido, una direccion de memoria.

Operador coreano de resolucion de diresion:

El operador de resolución de direccion o indireccion es un asterisco también.
Y sirve para resolver la direccion de una variable. En nuestro ejemplo anterior ptr al contener una direccion, muestra un numero en hexadecimal. Si nosotros quisieramos mostrar la variable a la cuál apunta le tenemos que anteponer el operador de indireccion, osea un asterisco:

cout << *ptr;
 Y listo, chau a tomar la leche.

Visto así como así no tiene mucho uso un apuntador, en estos ejemplos petes, pero creeme que cuando veamos más de arreglos, te vas a querer tijeretear las pelotas.

Salu3 gatonautas.


No hay comentarios:

Publicar un comentario