Um adendo: Variaveis de tamanho fixo como numbers e boolean, ficam armazenadas na Stack de memoria, por esse motivo, quando vc atribui y = x, sendo x um Number, o programa consegue copiar o valor de x para y. Quando estamos lidando com variaveis de tamanho relativo (podem ser alteradas, sem serem recriadas) como arrays, na Stack apenas ficara alocado o endereco de memoria do Heap onde o valor da variavel esta armazenado. Desse modo, quando vc atribui y = x, sendo x um array, vc esta atribuindo a y um endereco (ou ponteiro) que esta alocado na Stack, e nao o valor de x. Isso ocorre porque a Stack precisa ter um tamanho determinado na hora da execucao, entao algumas linguagens como Rust, escolhem fazer deste modo sua arquitetura (alocando variaveis de tamanho relativo no Heap). Posso ter me enganado em algo, mas eh por ai... li essa explicacao no livro The Rust Programming Language.
@Lucs-ku5cb
2 ай бұрын
Certíssimo! Em rust você também pode criar seus próprios tipos que clonam por padrão sem a necessidade de chamar o metodo clone() explicitamente Basta adicionar #[derive(Copy, Clone)]
@igorcastilhos
2 ай бұрын
Ponteiros são importantes em Go também e é uma linguagem que tá crescendo bastante. Ótimo vídeo Galego.
@ruizlenato
2 ай бұрын
realmente
@victorvilela_
2 ай бұрын
Excelente conteúdo e didática!
@ferreiiratech
2 ай бұрын
Excelente vídeo e didática. Muito bom!
@keuwey
Ай бұрын
Que conteúdo bom. Tô gostando muito do seu canal. Python foi a minha primeira linguagem, antes mesmo do HTML. Recentemente venho aprendendo java por causa da faculdade e apesar de entender o porquê dos memes com ela, tô achando bem legal. Também planejo estudar C, C++ e Rust pra aprender mais sobre esses conceitos avançados de ponteiros, stack, heap, threads, garbage collector, Big O notation etc.
@fdstv7755
2 ай бұрын
conteúdo e qualidade fantástica, parabéns !
@ithallotulio
2 ай бұрын
Tava querendo aprender ponteiro e vc lança esse video, sabe muito
@Edulira17
2 ай бұрын
Muito bom !! Estou no 3 período da faculdade e estou aprendendo Estrutura de Dados com C, seu vídeo me ajudou muito cara, obrigadao!
@vrnrx27
2 ай бұрын
Gostei do video, confesso q eu nao tenho tanto conhecimento afundo da linguagem, mas eu entendi o que você quis dizer, e realmente, eu nunca vi ponteiros e fiquei um pouco perdido mas entendi sua explicação !
@moimsk8
2 ай бұрын
Incrível que certas coisas que aprendemos há 10, 15 ou n anos atrás voltam a evidência, como no caso dos ponteiros. Minha segunda linguagem na faculdade foi C e isso foi o "Mindblowing" naquele momento. Quando chegamos no Java (na minha época era a matéria de linguagem de programação III) o professor tinha falado: ponteiros? Você até pode mexer isso no Java, mas esquece isso porque nossa máquina virtual Java vai cuidar disso pra você. É isso aí
@divergent_here
2 ай бұрын
python e js poderiam ter algum esquema de especificar ponteiros, iria ser mto util
@JustCandAngular
2 ай бұрын
Eu tinha um conceito muito mais complexo na cabeça kkkkk obrigado augusto por resumir tudo que eu aprendi na faculdade.
@Ellipsis_
Ай бұрын
eu aprendi tudo isso em Go kkk, e os Slices que seriam os Arrays sem tamanho fixo de la, tem o atributo de apontar pro endereço de memória por de baixo dos panos, por isso em Go fica claro questões de uso do Array e de Slices q sao bem mais utilizados la, do q outras linguagens
@rodrigogois3790
2 ай бұрын
No gráfico vc tem um ponteiro que guarda outro ponteiro. Mas na implementacao nao. x e y teriam o mesmo endereço 0xcccc.
@PauloSGM
2 ай бұрын
Muito bom. Adquiri um novo soft skill.
@ojuliomiguel
2 ай бұрын
Um dos problemas muito comum no javascript é passar uma variável por um parâmetro de uma função e modificar esse parâmetro internamente na função refletindo na variável passada. function modificarObjeto(obj) { // Modificando a propriedade do objeto obj.nome = "Novo Nome"; } Esse tipo de uso já vi causar muitos problemas - inclusive o lint nem deixa fazer isso.
@levirenatto924
Ай бұрын
Cara isso é mt legal vei, quero aprender mais disso onde eu posso ler ou aprender esse tipo de conteúdo? (Eu vou pesquisar mas se vocês tiverem uma boa fonte por favor compartilhar)
@Luc4s_unu
2 ай бұрын
top dms!
@marcuspessanha1237
2 ай бұрын
Baita vídeo Galego! Creio que nós pythonicos só aprendemos isso quando esbarramos na necessidade de usar .deepcopy kkkkk pelo menos comigo foi assim. Um abraço!
@thyagooliveira7
Ай бұрын
Noossa, que inferno foi depurar um código gigante sem fazer ideia de onde estava o problema por não conhecer o .deepcopy. Tu rssgatou traumas que eu não lembrava kkkkkkkkk
@marcuspessanha1237
29 күн бұрын
@@thyagooliveira7 kkkkkkkkkkkkkkkk sorry man
@JoSanInk
Ай бұрын
eu sou iniciante e uma coisa que eu não entendo é: pq eu iria querer o mesmo valor em 2 variáveis diferentes?
@glavila
2 ай бұрын
5:32 No meu entendimento, o que aconteceria então, seria y apontando para o primeiro elemento da lista de x (index 0), e por meio de aritmética de ponteiros, conseguiríamos acessar os outros valores, e aplicar funções como no caso, o append( ), certo? Ou é algo além disso?
@luizfilipe7630
2 ай бұрын
no python se eu n me engano, quando vc dá um append num array, ele cria um completamente novo com tamanho n+1 pra conseguir inserir o q vc quer
@glavila
2 ай бұрын
@@luizfilipe7630Faz sentido. Se estivéssemos lidando com um array dinâmico, surgiriam algumas considerações adicionais. Adicionar elementos no início e no final da fila seria facilmente resolvido utilizando uma lista encadeada circular. Mas isso apenas resolveria o problema para a função append, outras funcionalidades, que necessitariam acessar um elemento na lista de index qualquer teriam mais trabalho para encontrar o índice apropriado. Isso com certeza ia ter mais custo computacional do que simplesmente criar uma nova instância da lista de tamanho n+1 com os valores copiados. Depois é só desalocar a antiga lista, o que provavelmente é feito de forma automática em python, imagino eu.
@KLORETO
2 ай бұрын
O Y é o amiguinho da 'cola', não tem valor, apenas uma referência. O (Y) próprio valor pode ser outro.😅
@clintonrocha4980
2 ай бұрын
Pf, coloca um zoom nesse vscode, obrigado!
@FakeLewis
2 ай бұрын
Quabdo comecei com JS e descobri a "passagem por referência" que tanta gente reclamava, eu imediatamente imaginei "parece com ponteiros"
@TokaGado
2 ай бұрын
Em JS não tem um lance que variáveis décadas com let são locais e com var são globais?
@FakeLewis
2 ай бұрын
@@TokaGado sim, mas isso tem mais a ver com escopo de código que com ponteiros
@mangycornet2395
2 ай бұрын
@@TokaGado a estrutura dos ponteiros de uma variável pode ser local ou global e isso gera comportamentos estranhos no JS se comparado com outras linguagens.
@user-iy8sx1ko4x
2 ай бұрын
na hora que voce explica a declaração do porque o ponteiro é um int, sua explicação foi equivocada. Você declara o ponteiro como int *y porque o endereço de memória que você está guardando armazena um inteiro, logo, caso fosse um ponto flutuante, seria float *y. Isso porque espaços de memória sao reservados de acordo com a demanda de bits do respectivo tipo de dado armazenado, portanto o tipo deve ser especificado. Não tem nada a ver com o identificador do espaço de memória
@luizfilipe7630
2 ай бұрын
sim, tbm estranhei isso. em 5:28, eu queria tbm q ele explicasse q o x n guarda o vetor, e sim o ponteiro tbm, mas pelo menos ele avisou q foi uma simplificação. no mais o vídeo tá mto bom, o Augusto faz um trabalho excepcional introduzindo esses assuntos pros javascriptos
@user-iy8sx1ko4x
2 ай бұрын
@@luizfilipe7630 concordo. tive bastante prática com C, ponteiros nao é um assunto obvio de fato kkkk, ele deu uma boa introdução
@TheMaxwell1982
2 ай бұрын
Em C vc não é obrigado a especificar o tipo do ponteiro, tanto que pode declarar algo como void *i e fazer i = malloc(sizeof(float)); ou i = (void *) &. Os tipos são úteis na hora de fazer aritmética de ponteiros.
@TokaGado
2 ай бұрын
Muito bem, um int em C armazenamento 4 Bytes por exemplo(na maioria dos compilers), um char 1 Byte. Arrais é são uma sequência de endereços alocados em sequencia a partir do primeiro índice, é quase que lindo qnd entendemos isso em C. Mas queima neurônios até consagrar a sabedoria.
@luizfilipe7630
2 ай бұрын
@@TheMaxwell1982 sim, mas a discussão aqui é q no vídeo ele diz q devemos colocar int* pelo motivo do endereço ser expresso em um número inteiro
@kkkippy
2 ай бұрын
03:08 - Bem, eu acho que você poderia ter só dito que era um operador address-of, que é um E comercial (&) que antecede uma variável, retornando seu endereço de memória
@isackcosta5660
2 ай бұрын
cara, aprendi
@divergent_here
2 ай бұрын
javascripto, nova versão de calabreso
@Kl4us13
Ай бұрын
Entao meu x e um ponteiro para o valor?
@Chapeu_de_aluminio
2 ай бұрын
Só parece difícil, não é. Programo em c/c++ há anos, e amo ter esse controle.
@PenseBaixoNivel
2 ай бұрын
To a 12 anos mexendo com o assembly da at & t e te digo, não existe "variaveis" são apelidos dados a endereços de memoria, e o quanto antes o pessoal novato entender isso, mais facil fica ponteiros....
@PenseBaixoNivel
2 ай бұрын
Imagina os novatos entenderem registradores...e operaçoes bit a bit...
@ruelcio3353
Ай бұрын
@@PenseBaixoNivelqueria entender isso, mas tem pouco conteúdo sobre..
@PenseBaixoNivel
Ай бұрын
@@ruelcio3353 Ter conteudo tem, porem em ingles...
@PenseBaixoNivel
Ай бұрын
@@ruelcio3353 É bem simples, mas é preciso q a pessoa tenha uma base solida de Sistemas operacionais antes....
@adrianbueno6894
2 ай бұрын
ENTREI NO VIDEO SO PQ TINHA RUST
@Lucas-km8fr
Ай бұрын
Só ficou muito pequeno o tamanho da fonte😢
@joshuaoliveira8059
2 ай бұрын
5:55 / 6:33 Pera, quer dizer então que, em python, quando é criada uma variável que recebe outra variável individual , `y = x`, indiretamente é um 'ponteiro' da variável individual. Mas e se for passada um complemento para essa variável? `y = x + 1` Vai ser criado um endereço novo diretamente na memória?
@kaehm9054
2 ай бұрын
Cara isso depende mais de qual tipo de dado você está trabalhando. Geralmente nos temos os tipos "primitivos" que criariam um novo endereço de memoria só que se você trabalha com JavaScript, especialmente com a biblioteca React você vai ver muitas bizarrices se você não entender sobre o que o Augusto falou. Por exemplo, em React trabalhamos com estados e se o seu estado for um objeto, você vai ter que ter uma atenção a mais para altera-lo, e você vai usar muito o conceito de "DeepCopy" e "ShadowCopy". Eu não vou me estender porque se eu fosse escrever tudo iria dar um texto gigantesco, mas só com esses conceitos você pode procurar e entender melhor.
@bruno.obatista
2 ай бұрын
Pelo que entendi, quando são valores como inteiros, ele apenas faz uma cópia e não usa referência. Ele vai utilizar de ponteiros quando são listas, e ai sim ele altera o mesmo valor indepentende de qual variável é alterado.
@wellingtonferreira474
2 ай бұрын
É interessante ver um pouco sobre variáveis mutáveis e imutáveis. No geral as imutáveis tem seus valores copiados para o endereço de memória da nova variável e os mutáveis tem o a sua referência de memória atribuído a nova variável. Entao x = 5 e y = x, o x não tem a mesmo referência de memoria de y, mas no exemplo mostrado no video o array é mutável.
@joshuaoliveira8059
2 ай бұрын
vou pesquisar mais sobre esses assuntos, obg a ajuda@@kaehm9054 😀
@oenzolopes
2 ай бұрын
Qual o nome desse programa de desenho?
@thalesedu1372
2 ай бұрын
Excalidraw
@julianodibai7334
2 ай бұрын
Alguém sabe qual site desse quadro negro que ele usa para a explicação?
@GutoGalego
2 ай бұрын
Excalidraw
@caiozampini2112
2 ай бұрын
junior explica o que são pointers Edit: terminei de ver o vídeo e é um absurdo de desinformação, não fez o mínimo de pesquisa
@Bernardo_Steffens
Ай бұрын
O que ele falou de errado?
@guiseila_ok
Ай бұрын
cara da a crítica e não justifica o que ele errou kkkkk, depois quer ter razão
@yamsol1911
2 ай бұрын
Olá! Por favor, alguém sabe qual o nome do aplicativo de desenhos usado pelo @GutoGalego (8:12)?
Пікірлер: 74