55 años mas tarde me creo la persona idonea para decirte lo mismo, pero dejá de usar corchetes.
En el capítulo anterior de su serie de tv favorita de bajo presupuesto, vimos que un array es en realidad un apuntador, más concretamente el nombre como tal es un apuntador, los corchetes son como un sugar
Un coso de sintaxis azucarada es una maña para que se mire bien la cosa y no sea enquilombante programar. Pero bueno, no seamos putos, C++ es más feo para escribir que el árabe.
recordemos entonces que:
Eso sería la verdadera identidad del arreglo en si. Ahora vamos a definir un arreglo de chars (como podria ser de cualquier cosa, como Sanguches o Menemistas) y vamos a mostrar los elementos usando la tecnica ancestral de:
ARITMETICA PARA
Este arreglo es un arreglo de caracteres que si quiseramos mostrarlo, debieramos saber el tamaño e iterar dentro de un for o un while o un do/while.
Para saber el tamaño usamos un operador coreano oculto entre las hojas que se llama, dividi el entero por su minima (???????)
eto: int TAM = sizeof(arreglo) / sizeof(char);
tam es igual al tamaño en bytes de arreglo dividido el tamaño que ocupa un char.
Esta técnica funciona para todos los datos del C++. Usalo son sabiduría Piter.
Ahora sabiendo el tamaño, ponemos un for y mostramos la cuea:
Para saber el tamaño usamos un operador coreano oculto entre las hojas que se llama, dividi el entero por su minima (???????)
eto: int TAM = sizeof(arreglo) / sizeof(char);
tam es igual al tamaño en bytes de arreglo dividido el tamaño que ocupa un char.
Esta técnica funciona para todos los datos del C++. Usalo son sabiduría Piter.
Ahora sabiendo el tamaño, ponemos un for y mostramos la cuea:
jasta nani todo bien, usamos arreglo[i] para mostrar el caracter que corresponde al indice i. PORFAVOR no me comenten diciendo pelotudeces como "se te olvidó poner el nulo al final" , o "te falto el \0" NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO *expltota*.
Ahora, la aritmetica de apuntadores solo sirve dentro del mismo apuntador, puesto que vamos a recorrer de atras pa adelante la variable.
internamente estos operadores, como ser el + y el -, suman y restan una cantidad de bytes equivalente al elemento que compone al array. Osea, que si papito tiene un array de ints, hacer:
arreglo_de_ints + 2;
sumaría los bytes que ocupa un int en tu PC multiplicado por dos. Eso haría que desde la posicion en memoria de "arreglo_de_ints" se muevan tantos bytes, que quede entonces posicionado en donde se almacena el tercer elemento.
recordemos tres cosas:
1) el nombre de un arreglo es un apuntador a su primer elemento, osea es lo mimo que si yo pusiera: arreglo_de_ints[0] = *arreglo_de_ints
2) el primer elemento es arreglo[0], el segundo es arreglo[1] , el tercero es arreglo[2], exetera
3) tu mamá me llama
Probemos traducir el codigo a coreano para obtener un resultado de coreano programando en coreano:
3) tu mamá me llama
Probemos traducir el codigo a coreano para obtener un resultado de coreano programando en coreano:
acá basicamente lo que hicimos es sumar i a la variable arreglo, osea que va sumando 1byte * i. (Un char ocupa exactamente 1 byte). Entonces después lo desreferenciamos porque estamos diciendo que si " arreglo" es un apuntador a la primer direccion, "array + i" sigue siendo un apuntador, por ello hay que desreferenciarlo para saber que wea tiene atroden.
Podés, si te sentís asiatico, multiplicar también un valor, o mas sensisho pero no amarisho, restarle, dividir. Operaciones aritmeticas faciles de primer gradiola.
Eso si, nada, pero absolutamente NADIEN te asegura que se te vaya al pingo el indice "i" y quedés afuera de los limites xd
Y vos te estarás preguntando : "sirve para algo"
mi respuesta sincera es: "xd"
nos vemos en otra entrega camaradens!
Podés, si te sentís asiatico, multiplicar también un valor, o mas sensisho pero no amarisho, restarle, dividir. Operaciones aritmeticas faciles de primer gradiola.
Eso si, nada, pero absolutamente NADIEN te asegura que se te vaya al pingo el indice "i" y quedés afuera de los limites xd
Y vos te estarás preguntando : "sirve para algo"
mi respuesta sincera es: "xd"
nos vemos en otra entrega camaradens!
No hay comentarios:
Publicar un comentario