Páginas

viernes, 17 de enero de 2020

La verdad sobre la tierra hueca y el arrais

Ha, estás acá de vuelta, te quedaste con hambre, hambre de conocimiento, veni golosa, veni  que te doy masa

masarticulos de blog, eh, malpensado!

Alguna vez se preguntaron de donde sale tanto pelotudo suelto, si, del centro de la tierra, listo misterio desvela2. Otro dia desvelo el misterio de la tierra plana.
Ahora sigamos con los arrays.

El otro dia hablando un poco de los arrays, les dijen que eran como cagaditas que se acomodaban uno al lado del otro bien apretao, como cuando se llena de viejas chotas la iglesia y ninguna quiere estar parada.
Eso, un array en C++ es una tira de variables homogeneas una al costao de la otra.
Recordemos que un array, es una variable. Y al ser una variable, entonces se almacena en memoria y si está en memoria le puedo poner un chumbo en el mate, o mejor un apuntador.

Esto nos dice que si yo apunto a un array, y si un array es una seguidilla de variables una al lado de otra entonces, puedo mirar más allá del array, puedo mirar más profundamente puedo crear una variable introspectiva, puedo ser DIOS. No tanto pero:

hostia puta, el fantasma de la B era un apuntador todo este tiempo!

hay muchas cosas que en C++ moderno no se dicen, sos el choripibe que cree que el país se arregla con planes sociales, con la ayuda sosial con el voleto grati con el choripene. Ese sos vos, porque te crees todo lo que escuchas en el diario y lo que mirás en la radio.
Y como tal, hay cosas que no te dicen en los manuales modernos del C++ y es que, un array es un apntador.
ALA CHAVAL, PERO QUE GÜAY, NO?!

La semejanza de un apuntador un array y papa noel

Papa noel no esiste y el arrai tampoco. Un array es un apuntador que apunta al primer elemento de esa tan famosa cadena de elementos.

Si vo va al compilador y haces:


El compilador te va a mostrar la chota un valor en hexadecimal, como cuando trabajábamos con apuntadores, esto es porque ni el array ni papanoel, ni boquita existen.
El nombre de un array es tu papá disfrazado un apuntador.
Los corchetes son humo, son cuentos, son fruto de la viveza criolla, un chamuyo pero nunca el sueño americano de un pais primer mundista. 

En Asia, mas concreatamente en Corea, no usan corchetes, vos vás a laburar desarrollando software allá y le decis a tu colega compañero:
- Che, chino puto, me parece que te comiste los corchetes acá.
- Chino lo unico que él comelse sel tu helmana, chino no sel malica, chino usal puntelos. Colchete pala sudaca cagón.

Y vos así como de NANI !? y como no querés quedar como un pitochico, seguramente te interese saber usar la técnica ancestral samurai de:

Resultado de imagen para gif manos naruto

TECNICA SECRETA JUTSU NO CORCHETE DE LA ALDEA OCULTA ENTRE LOS PUNTEROS 

O más conocida en la jerga negra como: aritmética de apuntadores.

Chau, chau putooo chau putooo! ♫♪


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.