폰테이로스 엠 GO

소개



A primeira e vez que ouvi falar em ponteiros foi quando eu estava aprendendo minha primeira linguagem de programação na faculdade C , e eu lembro que foi algo que conseguiu deixar minha mente totalmente bugada e eu levei semanas para entender. De lá para cá esqueci totalmente como funcionavam mas em 2022 estudando o GO ouvi novamente falar de ponteiros e seguindo o Today I Learned resolvi escrever sobre para não esquecer mais

폰테이로스



Quando fazemos uma atribuição de variável no GO for example:

  x := 10


na verdade ele está fazendo uma associação e salvando o valor 10 em um endereço de memoria e ele salva isso como sendo o x, se quisermos pegar esse endereço em que o GO armazenou o valor 10 podemos usar o &x Para que o go mostre qual o endereço onde ele armazenou o 10



com isso se declaramos uma nova variável por exemplo Y e atribuirmos a ela o valor de &x , significa que ela vai apontar para o mesmo endereço de memoria que Xé diferente de qunando por exemplo falamos que z := x


perceba nos logs que o valor de Y é igual ao endereço de memoria de X mas o endereço de memoria de Y é diferente do de X, enquanto que no Z onde fizemos uma atribuição direta o endereço de memoria de Z é exatamente o mesmo que X

Outra coisa interessante que podemos fazer é, depois de atribuir a Y o endereço de X podemos modificar o valor que Y está apontando com o operator de *y então podemos fazer o seguinte!
Image description

Onde mudamos o valor de X usando apenas Y

E na vida real, quando vamos usar ponteiros?





semper que queremos que uma função mude o valor de uma variável que já temos, nesse caso podemos ver q ambas as funções de soma, asomaSemPonteiro 이자형 somaComPonteiro retornam o valor que receberam com 1 a mais, no exemplo é 11, porem só a soma com ponteiro reatribui o valor de x para 11 pois ela pega o local onde x está apontando e muda o valor que ele está apontando, onde antes era 10 파사 세르 11

좋은 웹페이지 즐겨찾기