➡️ Pointers: detailed explanation (with C++ examples)

  Рет қаралды 52,039

Programación Desde Cero

Programación Desde Cero

Күн бұрын

Пікірлер: 98
@pablobeckmann6494
@pablobeckmann6494 2 жыл бұрын
Entendi mas que a mi profe de algoritmos y estructura de datos de la uni, sos una genia !! Un abrazo !!
@juanmanuelortego548
@juanmanuelortego548 2 жыл бұрын
Tremenda explicación. De lo mejor que vi en AÑOS. Una lección que debería ser obligatoria para cualquier estudiante en lenguaje C/C++. Merecidísimo like para ud.
@Misa-fj6mn
@Misa-fj6mn Жыл бұрын
Increíble, días intentando entender punteros y acá entiendo en un ratito gracias
@luisarroyo8612
@luisarroyo8612 4 жыл бұрын
Tremenda explicación, clases como estas son una joya mal valorada, ojala y más gente la visualizara. Le doy gracias por compartir su conocimiento, se ha ganado un nuevo subscriptor, saludos!
@JonathanTAcuna-th6vz
@JonathanTAcuna-th6vz Жыл бұрын
Deseo increiblemente, que hagas videos del resto de la materia de mi curso!!!!
@erickvasquez3785
@erickvasquez3785 4 жыл бұрын
Que gran video. Al principio dude de verlo por la duración pero valió la pena cada minuto.
@andresfeliperiostamayo7307
@andresfeliperiostamayo7307 2 жыл бұрын
que nivel de pedagogia. primera vez que un tema me queda tan claro sin necesidad de reprogramarlo o reescribirlo.
@jaazpl624
@jaazpl624 3 жыл бұрын
Mejor que mi clase de la uni, muy buen vídeo y gran trabajo divulgando contenido de calidad
@marzarte
@marzarte Жыл бұрын
Eres increíble programadora, tus clases son tan fluidas, claras y consisas ,gracias sensei virtual, he aprendido y aclarado muchas dudas
@helmutinternet
@helmutinternet 2 жыл бұрын
Mas claro que eso, imposible! Muchisimas gracias por subir este video
@javierllanos8741
@javierllanos8741 3 жыл бұрын
Explicas 10^64 veces mejor que en mi universidad :D
@antoniolopezalvarez8325
@antoniolopezalvarez8325 3 жыл бұрын
Explicación perfectamente estructurada. Aborda los contenidos desde puntos de vista diferentes y de forma gradual. Los presenta hasta un nivel de profundidad accesible y apunta a niveles mas complejos. Muchas gracias
@harlesepc5906
@harlesepc5906 2 жыл бұрын
Este video es lo maximo, que explicacion tan excelente.. La mejor explicacion que he visto en youtube, nadie que la sobrepase. Seria bueno saber una explicacion de esta forma pero con matrices.
@abdiasfiscaltemich5097
@abdiasfiscaltemich5097 3 жыл бұрын
Super mega hiper explicado, muchas gracias por ayudarme a entender los punteros, debería también enseñar, en otro curso, como explicar también como usted.
3 жыл бұрын
¡Gracias! ☺ Creo que el único "secreto" es intentar recordar qué cosas yo misma no comprendía cuando aprendí el tema que intento explicar. ¡Saludos!
@jorgeguzman6685
@jorgeguzman6685 2 жыл бұрын
Hermosa enseñanza.
@OlbertPerez
@OlbertPerez 3 жыл бұрын
Muy buena explicación la verdad, hay muchos conceptos que he escuchado antes y he entendido a medias, hasta este momento que he visto este vídeo completo.
@framb8627
@framb8627 Жыл бұрын
¡Muy bueno! Con esto queda muy claro el tema al respecto. Gracias por tan buen contenido
@rondeau_choysky6663
@rondeau_choysky6663 2 жыл бұрын
Muy buena explicación, me sirvió pero lo tendré que repetir muchas veces para lograr recordar todo jajaja. Me suscribo.
2 жыл бұрын
¡Me alegra de que el video te sea útil! El asunto de recordar todo viene con la práctica, así que no te preocupes por intentar recordarlo de inmediato sino más bien por comprender los conceptos y tratar de aplicarlos mientras practiques. ¡Éxitos!
@noelrodriguez143
@noelrodriguez143 3 жыл бұрын
Brutal, me ha quitado muchas dudas. Mil gracias por esta explicación.
@andrewjackson508
@andrewjackson508 4 жыл бұрын
estoy deseando verlo, soy fan a tu modo de explicar, la lista de reproduccion de listas enlazadas es la mejor de internet en habla hispana. viniendo de usted este video garantizado que es de calidad. un saludo
@mtst5307
@mtst5307 3 жыл бұрын
Muy buena explicación, mejor que las que dan en la universidad
@brayannavarro4121
@brayannavarro4121 2 жыл бұрын
Excelente explicacion, muchas gracias
@jackreacher9155
@jackreacher9155 4 жыл бұрын
Para que universidad si tenemos a Programación desde cero. Excelentes explicaciones.
@robertochavarria8345
@robertochavarria8345 2 жыл бұрын
En el min 9:32 casi me explota la cabeza y eso que voy por un cuarto de video, magnifico tutorial
@santucigod
@santucigod 3 жыл бұрын
Muy completa la explicación. Haces videos de calidad, qué bonito.
@pimbort
@pimbort 3 жыл бұрын
Muchas gracias, buena explicación, arriba lenguaje C y C++.
@T0berius
@T0berius 3 жыл бұрын
Sos una genia. Me sirvio y me encanto la clase; estoy eternamente agradecido.
@kinsley1468
@kinsley1468 4 жыл бұрын
De todos los detalles, el que más me gustó es que los anuncios estan en lugares que no te corten la nota. Sigue explicando que contigo uno si entiende.
4 жыл бұрын
¡Gracias! Aunque por la ubicación de los anuncios no puedo llevarme el crédito, ya que eso es obra del algoritmo de youtube que, mediante machine learning logra saber cuáles son las pausas naturales del video 😀
@josejimenez-wd5rw
@josejimenez-wd5rw 2 жыл бұрын
Excelente clase 10/10
@mentalthink1
@mentalthink1 3 жыл бұрын
Están muy bien tus vídeos, las explicaciones son simplemente geniales... Sigo tu canal a ver que más me encuentro, gracias por tu labor.
@cesarpedroza4637
@cesarpedroza4637 8 ай бұрын
Esta es la mejor explicación que encontré sobre este tema 👍
@DryadRoot
@DryadRoot 2 жыл бұрын
Excelente el contenido y la explicacion, gracias! suscrito!! :D
@gzeta2251
@gzeta2251 2 жыл бұрын
Muy bien explicado, le agradezco mucho el trabajo realizado y espero que siga así de útil y bueno este canal!
@josepablo7270
@josepablo7270 2 жыл бұрын
Excelente explicación.
@lauraastua9031
@lauraastua9031 3 жыл бұрын
Muchas gracias por estos videos
@elianyeltzinpaniaguamariac4257
@elianyeltzinpaniaguamariac4257 3 жыл бұрын
Gracias por tal explicación
@danielgomez9920
@danielgomez9920 Жыл бұрын
Sencillamente Tremendo
@tombinocapo
@tombinocapo 2 жыл бұрын
varias dudas aclaradas, gracias por el aporte =)
@Z_k404
@Z_k404 3 жыл бұрын
Muchas gracias ☺️ me a servido de mucho 👍💪
@ramiroluduenaa
@ramiroluduenaa 2 жыл бұрын
Increíble la info, muy valiosa!
@Obishman
@Obishman 4 жыл бұрын
Muy bueno, muy clarito, muchas gracias!
@gabrielralfcaceresgabriell319
@gabrielralfcaceresgabriell319 4 жыл бұрын
Muy Muy bien, muchisimas gracias, sigue compartiendo este tipo de información, gracias.
@enmanueltejada8872
@enmanueltejada8872 3 жыл бұрын
Eres muy buena, sigue haciendo contenido, me gustaría ver uno de programación orientada a objetos en c++
@DaveRoman-mc4nn
@DaveRoman-mc4nn 4 жыл бұрын
Buen tutorial. Cabe recalcar que las referencias y punteros en C++ son diferente en cuestión sintaxis, sin embargo, a nivel de implementación, el compilador deberá de convertir la referencia a un puntero si por ejemplo lo usamos como parámetros, evidentemente, todo esto se lo hace implícitamente, sin que el programador se de cuenta, pero igual hay que tomarlo en cuenta. Otro punto que a pesar que las referencias son simplemente alias y que no debería de ocupar memoria, esto dependerá del compilador y de las optimizaciones que haga.
@johansanchez7195
@johansanchez7195 4 жыл бұрын
Yo te conozco
@WalterNicolasTarsia-io8sb
@WalterNicolasTarsia-io8sb 9 ай бұрын
uuff. muchas gracias. muy detallado y simple, la explicion. lo q necesitaba. lo de "fuga de memoria" sucede mientras se ejecuta el programa o sucede incluso luego de cerrarlo?
@angelffg
@angelffg 4 жыл бұрын
Excelente Video y explicación!
@solracesoj6594
@solracesoj6594 4 жыл бұрын
Sería genial otro video con punteros a funciones.
@samuelcanochocce2521
@samuelcanochocce2521 3 жыл бұрын
te recomendaré a mi profesor de progra :3
@davidalvarez325
@davidalvarez325 Жыл бұрын
Que lindo muchas gracias
@guardianvicio3367
@guardianvicio3367 3 жыл бұрын
Muy buen video que excelente explicación :D!
@sebassnk9613
@sebassnk9613 4 жыл бұрын
Muy bueno! Todo muy claro!
@sebastianbustosguerrero5329
@sebastianbustosguerrero5329 2 жыл бұрын
muy buen video
@hallo-welt
@hallo-welt 4 жыл бұрын
Genial explicación, saludos.
@str1132
@str1132 4 жыл бұрын
Excelente !! Muchas Gracias
@johnray0101
@johnray0101 3 жыл бұрын
que buena explicacion
@JulioCesar-hh9wq
@JulioCesar-hh9wq 2 жыл бұрын
Gracias
@veronicatapia2514
@veronicatapia2514 4 жыл бұрын
sos muy Geniaaaaaaaaaaa
@carlosbustamante2977
@carlosbustamante2977 2 жыл бұрын
Hola ¿por que en el minuto 39:57 cuando usas "function(z)" la "Z" va sin ampersand?
@simonperezrodriguez5723
@simonperezrodriguez5723 3 жыл бұрын
Muy buen video sigue así
@LuisAntonioToranzoToribio
@LuisAntonioToranzoToribio 4 жыл бұрын
Conoces el termino "alojar"? En lugar de alocar que supongo querías hacer referencia a la función informática "malloc(ate)"=alojamiento de memoria o mejor memoria asignada (memory allocate=asignación de memoria) alocar=Diccionario de la R.A.E (Real Academia Española)=1. Causar locura. 2. Causar perturbación en los sentidos. Alocada=Persona que tiene cosas de loca o parece loca. Por lo demás el vídeo es de lo más completo que he visto. Gracias. Saludos desde España!
4 жыл бұрын
¡Hola! Gracias por tu comentario. Si bien soy consciente de las malas adaptaciones de palabras inglesas que se usan en el ámbito de la tecnología, hay veces que elijo usarlas por el hecho de que se las suele utilizar con frecuencia y es como posiblemente se encuentre en varios recursos e, inclusive, libros. En este caso, la función malloc es del lenguaje C, por lo que no aplica a este video (que trata sobre C++). Pero la traducción "alojar" no es la correcta, ya que podría inducir a confusión al dar la idea de que estamos almacenando un valor en ese espacio de memoria, mientras que la "alocación" (o "reserva" de memoria) es una operación que solo aparta cierta porción de memoria, del tamaño que le indiquemos, pero que no implica que se guarde nada en ella. Creo que la palabra "reservar" sería la mejor traducción.
@HameKameHaa
@HameKameHaa Жыл бұрын
Buen videoooo!!!!!!
@zoizoi8841
@zoizoi8841 3 жыл бұрын
Pregunta: ¿Porqué en el 21:24 sale 4, si es int debería ser 2 bytes?
3 жыл бұрын
La cantidad de espacio que ocupa un int puede variar de acuerdo a la implementación del compilador usado y a la arquitectura. Lo más usual es que ocupe 4 bytes en arquitecturas de 32 bits, 2 en las de 16 y 8 en las de 64.
@zoizoi8841
@zoizoi8841 3 жыл бұрын
@ muchas gracias, quedo muy claro y felicitaciones, muy buen contenido.
@cesargabrielarrietacarrasc3169
@cesargabrielarrietacarrasc3169 2 жыл бұрын
Hola para poder usar punteros en vsc descargaste algun plugin adicional?? porque escribi los codigos tal cual el video y me tira este error identifier "P" is undefined cuando apunto el punteo a una variable osea cuando escribo P = &saludo;
@efectibit
@efectibit 2 жыл бұрын
Los punteros son inherentes al lenguaje. Físicamente todo se maneja con punteros, pero no todos los lenguajes te dejan usarlo. Respecto a "P is undefined" posiblemente sea porque no has declarado P. Debes declararlo similar a: char * P;
@sebastianlevano6110
@sebastianlevano6110 2 жыл бұрын
Grande capo
@andrewjackson508
@andrewjackson508 4 жыл бұрын
profesora una duda. en este ejemplo a y b tienen la misma direccion de memoria en la stack, pongamos 0x0DB8 y se refieren las dos al numero 7, mi duda es, cuando tenemos una funcion y dentro de ellay un parametro pasado por referencia como en por ejemplo int funcion(int &n1, int n2){}, esa variable n1 de dentro de los parametros de la funcion pasada por referencia que seria asignada a otra variable como a declarada en el main, por ejemplo int main( ) { int a = 100; int b = 25; return 0; }. ¿se refieren n1 y a a la misma direccion de memoria o se le asigna otra diferente a la referencia? eljemplo que a tuviera direccion $41B2 y de dato 100 y n1 que tuviera otra direccion de memoria como $41B5 y de dato la referencia que seria $41B2 . gracias de antemano
4 жыл бұрын
Hola, Javi. Dejame ver si entendí bien tu pregunta... ¿El código sería algo como esto? int main() { int A = 100; int B = 25; funcion(A, B); return 0; } Si es así, el parámetro n1 dentro de funcion es una referencia a la variable A, lo cual significa que todo lo que hagas con n1 dentro de la función es equivalente a hacerlo directamente con A, porque ambos son la misma variable. Por ejemplo, si la función está implementada así: void funcion(int &n1, int n2) { n1 = 8; } al retornar la llamada funcion(A, B) vas a ver que la variable A ahora guarda el valor 8, ya que fue modificado mediante la referencia que había en la función. Esto es porque, dentro de la función, n1 es "otro nombre" para la misma variable. La dirección es la misma, porque no hay dos variables sino una, con dos nombres. Eso lo podés verificar haciendo cout
@andrewjackson508
@andrewjackson508 4 жыл бұрын
​@ ok bueno, lo primero de todo debo decir que la duda me ha quedado totalmente aclarada , muchisimas gracias de corazon. grandes explicaciones las suyas, y de verdad que lo son , ya que si te quieres enterar bien de las cosas en internet o en todo no es tan facil, una persona que explique bien no cae de los arboles, ojo y aunque las preguntas que hago parecen triviales es por que de verdad no estan bien explicadas no solo en la red sino tambien en libros, para poner un ejemplo yo entiendo bien lo que es un delegado, es decir un puntero a un metodo de un clase, pero en c++ es bueno entender los conceptos que se refieren a la memoria en detalle, si no ¿para que estudiar c++? hay otros lenguajes que le prestan mas atencion a las aplicaciones que al rendimiento. y estos detallitos que usted explica aclaran mucho. gracias pero queria decirle dos cosas y hacerle una ultima pregunta con respecto a las referencias. la primera es que habia oido mucho que da igual pasar una referencia o un puntero ya que una referncia es un puntero gestionado, y no es verdad , una referencia (ahora me queda claro) no tiene direcion de memoria propia, y un puntero si, de ahi todas las diferencias entre referencias y punteros. la segunda cosa es que tratando de asegurarme de que una referencia no tiene direccion de memoria propia sino que es la misma que la variable a la que se refiere me encontre con sus videos, y en la lista de reproduccion de Aprende a programar con C++ hay un video que se llama C++: Funciones, parametros por referencia y constantes y en ese video, del minuto 13. 37 al 15 39 se expone un grafico representando a modo de ejemplo como seria la memoria ram mientras se ejecuta ese programa con parametros por referencia y ahi me encontre confuso porque a la variabla n1 que es una referencia le asigna una direccion de memoria propia y dentro de esa direccion la direccion de otra (que por cierto en el video esta mal la direccion a la que se refiere , aunque si que esta corregida en los comentarios , lo que aumento un poco mi confusion) y ahora entiendo gracias a usted que eso vendria a ser un puntero y no una referencia. y con esto se puede decir que no solo entiendo el concepto sino tambien porque las referencias actuan como lo hacen y son tan utiles, mil gracias, no se como pagarte. mi ultima pregunta para no dejar cabos sueltos viene dada por lo de que una referencia una vez asignada a un dato ya no se puede asignar a otro: si una referencia se puede asignar a un solo dato , ¿porque en las funciones que tienen referencias se pueden llamar una y otra vez con diferentes datos? muchisimas gracias por todo.
4 жыл бұрын
​@@andrewjackson508 me alegra haber colaborado en aclarar tus dudas 😊. Respecto al otro video que mencionabas, es verdad que está bastante confuso y he querido rehacerlo ya por algún tiempo, para mejorarlo. Y creo que tus preguntas son muy interesantes para incluir las respuestas también en ese video. Y, si bien es verdad que muchas veces los compiladores implementan a las referencias como punteros, esto es un detalle de cómo funciona cada compilador en particular y no modifica el concepto de referencia (creo que, al contrario, puede resultarnos confuso), entonces es algo que decidí no incluir en el video. Esto que preguntás sobre cómo puede llamarse repetidas veces usando distintos argumentos a una función que tiene parámetros por referencia, se explica por los registros que se crean con cada invocación (lo que se ve en el 13:20 de este video): cuando una función es invocada, se reserva un espacio de memoria stack para ella, conteniendo todas las variables que necesite (incluidos parámetros). Cuando la función retorna, ese espacio se libera y se "borran" las variables de la memoria. Entonces, cada vez que se la invoca, se crea un nuevo espacio ("registro") en memoria y vuelven a crearse sus variables. Así que, si tuviéramos un código como este: void funcion(int& n1) { n1 = 0; } int main() { int a = 100; int b = 25; funcion(a); funcion(b); } lo que sucede es que, con la invocación funcion(a) se crea un registro que contiene a n1 como alias de a. Al retornar, ese registro "desaparece" de la memoria y con la llamada funcion(b) se vuelve a crear nuevamente, ahora con n1 como alias de b. Entonces no es que la referencia haya cambiado, sino que se destruyó y se volvió a crear. Lo que no podemos hacer es crear una referencia, inicializarla para que sea "alias" de una variable, y luego querer que sea alias de otra. Tal vez este ejemplo sea útil para ver que eso sí es imposible de hacer: onlinegdb.com/S17yivBiL
@andrewjackson508
@andrewjackson508 4 жыл бұрын
@ perfecto, mil gracias
@electricidadpalomar7001
@electricidadpalomar7001 3 жыл бұрын
Hola, muy agradable la forma en la que explicas. Estoy intentando de llevar a cabo el primer ejemplo en Arduino tengo entendido que trabaja con C++: String saludo = "Hola"; String* p; p = &saludo; Serial.print(p); ¿podrías decirme por que me da este mensaje de error? cannot convert 'String' to 'String*' in assignment ...
3 жыл бұрын
¡Hola! Entiendo que estás intentando imprimir la dirección de memoria de la variable "saludo" que está guardada en el puntero "p", ¿verdad? Según la documentación de Serial.print() de Arduino (www.arduino.cc/reference/en/language/functions/communication/serial/print/) podrías probar convirtiendo explícitamente el puntero a entero e indicando que te lo muestre en base decimal: Serial.print((long) p, DEC); O también podrías decirle que lo muestra como hexadecimal: Serial.print((long) p, HEX); ¡Espero que te sea útil!
@electricidadpalomar7001
@electricidadpalomar7001 3 жыл бұрын
@ Pues no lo he podido lograr. Voy a reforzar mis conocimientos sobre tipos de datos y mas a delante retomare el tema Punteros. Muchas gracias !
3 жыл бұрын
​@@electricidadpalomar7001 no soy experta en Arduino, así que no puedo guiarte demasiado. Pero Arduino no usa C++ puro sino que tiene sus propias bibliotecas. Por ejemplo, tiene su propia clase String. En este ejemplo que diste, si lo traducimos a C++ (sin bibliotecas de Arduino de por medio), el puntero se imprime correctamente: onlinegdb.com/BJId16IV_ Ese mensaje de error que te muestra suele aparecer cuando se intenta llamar a una función pasándole un argumento de un tipo diferente al que espera. Por eso es probable que el inconveniente esté en cómo Serial.print recibe sus argumentos o qué tipos de datos acepta. El mensaje de error está diciendo que esperaba un String donde le pasaste un puntero (un String*) y no puede hacer una conversión automática entre esos dos tipos.
@luisalbertozambranobonilla709
@luisalbertozambranobonilla709 4 жыл бұрын
yo tengo visual studio pero compila solo en python. Como puedo hacer para que compile c++
4 жыл бұрын
Vas a necesitar agregarle la extensión para C++ y tener un compilador de acuerdo a tu sistema operativo. De todas formas, el IDE que usé fue visual studio code por comodidad, pero puede utilizarse cualquiera, incluso alguno online como el que está en www.rextester.com o www.onlinegdb.com (con C++11 o superior).
@luisalbertozambranobonilla709
@luisalbertozambranobonilla709 4 жыл бұрын
@ gracias por la respuesta
@mozanapon
@mozanapon 5 ай бұрын
9:24 Barrasss
@TheLurleenGamespro
@TheLurleenGamespro 3 жыл бұрын
Tendras un video de como configurar el VSC? No encontre una forma facil e intuitiva de hacerlo
3 жыл бұрын
¡Hola! No tengo videos sobre cómo configurar Visual Studio Code para C++. Solo para descargar Qt Creator: kzbin.info/www/bejne/nX3QZ3WqfNaXpck y acá cómo crear un proyecto de consola en ese IDE: kzbin.info/www/bejne/d3TckK2Fh5Jmf7M
@carlosbustamante2977
@carlosbustamante2977 2 жыл бұрын
@ ¿podras hacer uno? por favor!
@albertosantiago6600
@albertosantiago6600 4 жыл бұрын
puedo seguir el curso con el lenguaje java
4 жыл бұрын
Si bien el concepto de punteros está presente en muchos lenguajes, Java no usa punteros de manera explícita. Pero sí usa referencias y este tema te va a servir para saber cómo se implementan los objetos en memoria.
@xabier1698
@xabier1698 3 жыл бұрын
a=True while a==True: print("Gracias")
@danielreyesepitacio8406
@danielreyesepitacio8406 Жыл бұрын
Ahora entiendo por qué prefieren python 😂😂😂
@montevideooculto2996
@montevideooculto2996 4 жыл бұрын
mm q vos encantadora, quiero que me digas cosas lindas al oido...
@darkfemto126
@darkfemto126 4 жыл бұрын
1er comentario
@fabians1295
@fabians1295 Жыл бұрын
Magnífica explicación !! Gracias 😄
@erikayarethb.6499
@erikayarethb.6499 Жыл бұрын
¡Excelente video! Gran explicación, muchas gracias
➡️C++: Qué son las listas simplemente enlazadas
21:18
Programación Desde Cero
Рет қаралды 8 М.
Punteros en C++ - (Que son y para que sirven los punteros)
9:39
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
💻 Memoria RAM: stack y heap
18:36
Programación Desde Cero
Рет қаралды 25 М.
you will never ask about pointers again after watching this video
8:03
Recursividad | FÁCIL de entender y visualizar | Recursión
12:04
💻 Cómo hacer un programa con interfaz gráfica ("GUI") en C++ y Qt
36:20
Programación Desde Cero
Рет қаралды 117 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.