Fala galera beleza aqui é o Wagner Ramo do WR kits Channel e este é mais um vídeo em parceria com a Raisa eu tenho certeza que Você clicou nesse vídeo pensando que não iria entender ponteiros na linguagem si mesmo assim mas eu garanto para você prestando bastante atenção nesse conteúdo vou te ajudar a entender de uma vez por todas os ponteiros na linguagens C que metem medo em muita gente se você já domina os ponteiros sempre é bom aquela revisão Então já deixa o seu like se inscreva compartilhe com todos que estão estudando linguagem C
ponteiros são muito úteis para os nossos projetos em programação vídeo que eu amo oferecimento da raisa.com.br para o seu laboratório de eletrônica acesse Raisa e utilize o cupom WR kits para 7% de desconto em toda a loja Vamos para o vídeo de hoje segura aí Eu estou aqui no code Blocks você pode utilizar a ideia que você quiser para trabalhar com linguagem C e o compilador desejado então code Blox é um gratuito que eu recomendo também temos o nosso curso definitivo de linguagem C onde exploramos tudo sobre ponteiros e toda a linguagem C se você
tem interesse em investir neste conhecimento eu deixo o link aqui para você também e no comentário fixado Tá certo vamos começar declarando uma variável do tipo inteiro chamar de var e atribuir 15 a ela eu vou trabalhar com o tipo inteiro mas sabemos que os ponteiros podem ser utilizados com os diversos tipos de dados da linguagem C um ponteiro é um apontador para endereço de memória basicamente isso e ele de fato ele é uma variável que pode ser utilizada para conter o endereço de memória e com isso conseguimos atualizar conteúdos destes endereços de forma indireta
já vamos entender isso aqui na prática Primeiro vamos ver aqui o conteúdo de vara eu posso imprimir esse conteúdo utilizando printf que todo mundo já conhece também tá e o conteúdo 15 nenhuma novidade até aí eu também posso verificar o endereço de Vale endereço desta variável utilizo percentual p e utilizo o e comercial na frente do nome da variável Então compilando veja que não temos erros nem avisos aqui rodando nós vemos o conteúdo de varcing e eu vejo o endereço que é este valor em hexadecimal aqui 6 0 fe1c você não precisa se preocupar com
este valor apenas entender que esta variável inteira do tipo vá ela existe em um determinado endereço físico da memória do computador e nesse endereço físico armazenamos o valor 15 é isso que você tem que entender agora vamos trabalhar com ponteiro como declaramos ponteiros em ser utilizando o asterisco na frente do nome da variável eu vou chamar PTR E aí eu já posso utilizar este ponteiro para apontar para o endereço desta variável que criamos aqui como eu faço isso eu atribuo PTR ao endereço da minha variável Então o que fizemos até aqui eu vou ilustrar com
esta pequena tabela nela eu coloquei endereços partindo de oito mil Então 8.8001 até 8006 mas entenda que é algo contínuo e esses valores são apenas para ilustrar aqui de novo você não precisa se preocupar com o valor exato dos determinados endereços Então vamos supor que declaramos aquele ponteiro chamado PTR e a nossa variável a nossa variável vá vamos supor que foi declarada aqui armazenada no endereço 8001 e dentro dela existe o valor 15 que salvamos nela PTR que eu declarei vamos supor que foi salvo no endereço 8 004 perfeito Qual é o conteúdo de PTR
o conteúdo de PTR é o endereço da minha variável vá que neste caso aqui é 8001 estamos ilustrando com 8001 aqui nesta tabela só para ficar mais simples de entender então até aqui nós temos isso de fato no nosso projeto então observando aqui eu vou dar printfs para vermos agora o conteúdo vou chamar de conteúdo apontado por PTR então o conteúdo apontado pelo meu ponteiro é o asterisco PTR que vai ser o que vai ser 15 nós vamos visualizar 15 aqui com este print F Exatamente isso e se eu imprimir aqui o endereço apontado por
PTR eu vou imprimir o próprio PTR Onde vamos visualizar o endereço de se eu compilar aqui não temos erros nem avisos se eu rodar nós vamos ver aí os valores que eu estou prevendo então o conteúdo de vara 15 que a minha variável o endereço é 60 PTR está apontando para var para o endereço de var que contém 15 logo quando eu utilizo asterisco eu estou utilizando o conteúdo do endereço apontado por PTR pelo ponteiro então o apontado por PTR falando de forma resumida é 15 que é o conteúdo aqui de vara e veja que
o endereço apontado por PTR é igual aqui 6 0 f1c que é o endereço de var interessante demais isso se eu imprimir aqui agora o endereço do próprio endereço do PTR utilizo também percentual P contra barra n para nova linha e Comercial PTR aqui eu vou ver o endereço do meu ponteiro então na memória o endereço existe o ponteiro existe no endereço 6 0 F18 compreendeu então assim eu consigo deduzir que os ponteiros quando até vou anotar aqui o resumo para você para você não esquecer mais quando eu utilizo asterisco então o asterisco PTR significa
que o apontado por lembre sempre dessas palavras aí você vai fixar o apontado por significa o quê o conteúdo do endereço apontado por expandindo essa afirmação Então aqui tem o conteúdo do endereço da variável que PTR aponta quando eu utilizo o asterisco quando eu utilizo apenas PTR eu vou ver o endereço da variável o próprio endereço é aquele local onde a variável está armazenada e quando eu utilizar o e Comercial PTR Eu Verei o endereço do ponteiro ou seja o endereço de PTR lembre sempre disso então olha só o que eu posso fazer agora eu
vou imprimir tudo de novo aqui logo depois Vou dar duas novas linhas aqui para separar as informações só que antes de imprimir tudo de novo eu vou dizer que o apontado por agora recebe o valor 73 por exemplo Olha o que eu estou fazendo aqui sempre que utilizamos o asterisco na frente quando estou trabalhando com ponteiro estou dizendo que é o conteúdo da variável apontada pelo ponteiro o apontado por vai receber 73 significa que eu estou utilizando ponteiro para atualizar o conteúdo do endereço onde Vá onde a minha variável está ou seja aqui no conteúdo
de vácuo nós veremos 73 agora também então Olha só vamos fechar aqui com o Pilar de novo veja que não temos erros nem avisos rodando nós vamos ter o resultado aqui esperado primeiro tínhamos 15 foi valor de inicialização e depois disso o próprio conteúdo de várzem que eu tenha atribuído nada a ela mas sim ao ponteiro que aponta para o seu endereço foi atualizado para 73 Então tá aqui 73 de novo apontado por PTR 73 e olha só os endereços os endereços se mantém nos mesmos após a sua instrução da linha 17 aqui no nosso
mapa o que muda aqui não são os endereços apenas o conteúdo divar que passa a ser 73 tá entendido isso basicamente assim que funcionam os ponteiros e eles são bastante úteis quando eu quero fazer uma atualização indireta por exemplo eu vou declarar aqui uma função que eu vou chamar de display eu vou passar a variável e passar o ponteiro para ela eu quero apenas utilizar estas impressões aqui dentro desta função aí você já vê como nós passamos os ponteiros para uma função então tiverem PTR aqui eu já vou copiar este Sprint Apps e está pronto
é isso que eu quero mostrar o endereço aqui do ponteiro eu vou manter vou manter assim e agora eu posso só chamar a minha função aqui display onde eu passo o ar e eu passo o PTR veja que quando eu trabalho com PTR eu já estou trabalhando com o próprio endereço por esse motivo eu utilizo apenas a descrição PTR se eu compilar aqui sem erros e sem avisos seu rodar nós veremos exatamente o que estávamos vendo antes os endereços mudaram seus valores agora porque estou trabalhando dentro de uma função e a função também tem o
endereço diferente na memória ela inicia essa função display ela vai iniciar endereço diferente da memória distinto deste da minha função principal mas de novo o número específico dos endereços não é importante é importante que você tenha em mente o que acontece quando eu trabalho com asterisco na frente do ponteiro o próprio nome do ponteiro ou com o eco comercial que é o endereço do ponteiro agora um outro recurso que eu vou chamar aqui de updates de atualização vamos supor que eu queira atualizar esta variável vá na minha função por algum motivo específico declara um ponteiro
aqui vou chamar de p então aqui que eu vou trabalhar com ela aqui embaixo vai atualizar a minha variável então apontado por ter asterisco P vamos supor que eu quero incrementar em uma unidade então recebe ele próprio mais um e olha só o que vai acontecer agora até aqui tudo certo ao invés de utilizar este ponteiro aqui eu poderia utilizar update se eu passar o endereço da minha variável para função update eu estarei atualizando esta variável da função principal dentro desta função aqui de modo que depois na próxima impressão veremos o conteúdo incrementado em um
ou seja 16 será que é isso mesmo aqui visualizando exatamente o que previmos primeiro 15 e depois o apontado por PTR recebe 16 legal demais veja que atualizou aqui também ó então eu posso trabalhar assim com os ponteiros os ponteiros também são os as variáveis que apontam para o primeiro endereço de reis e streams na linguagem C sabemos disso podemos utilizar isso ao nosso favor varrendo Strings varrendo vetores ou orways ou Ray smootidimensionais trabalhando assim com os ponteiros de forma bastante eficiente portanto é assim que você trabalha com os ponteiros na linguagem C existem muitas
Outras aplicações que não tem como se aprofundar aqui em um vídeo rápido mas eu espero que você tenha gostado e entendido de forma definitiva O que são ponteiros e as funções principais dele e como deles e Como se comportam em nosso código em nosso projeto de novo eu vou convidar você para estudar a linguagem ser a fundo e completa temos o curso defin é sensacional tem muito conteúdo hoje você vai aprender de uma vez por todas toda a linguagem C Então veja aqui embaixo é um curso sensacional e para quem tem interesse eu vou deixar
o ciplas Plus também que é outro curso completo para você concluímos mais um vídeo em parceria com a Raisa Obrigado por assistir acompanhe sempre like no vídeo maratona o nosso conteúdo aqui no canal tem mais de 3.700 vídeos para você conferir Valeu sua audiência um abração e até o próximo vídeo