Ponteiro nada mais é do que um tipo de dado, a única diferença é que o valor recebido é um endereço de memória. Como assim um endereço de memória? Pois é, cada variável que cria em seu programa está localizada em uma posição de memória, veja o exemplo a seguir:
int altura;
char sexo;
Poderiam ter os seguintes endereços na memória:
altura 40300
sexo 40101
Então o que uma variável ponteiro guarda é justamente esse endereço. Se quiser declarar uma variável ponteiro em C, utilize a sintaxe abaixo:
Como pôde perceber, o operador & retorna o endereço da variável, que em seguida atribuímos a ponteiro. Verifique o resultado do seguinte algoritmo:
Ta, sabemos declarar, atribuir valor e ler o valor do endereço que o ponteiro aponta, e para que serve isso tudo? Bom uma das utilidades é alteração de variáveis em outras funções, por exemplo, se declarasse uma variável na função com o nome salário, e quisesse aumentar o valor desta em uma função chamada aumento_salario, como faria sem usar ponteiro? Observe o seguinte algoritmo e veja o seu retorno:
Então ao invés de passarmos o valor da variável, passamos o endereço e isso resolve o nosso problema. Essa foi uma das aplicações de ponteiros, outra aplicação seria com alocação dinâmica de memória que já falamos aqui no blog. Essa foi uma introdução a ponteiros há muita coisa que se pode fazer, então bons estudos e até a próxima!
int *ponteiro;Isso mesmo, adicionando um asterisco na frente do nome da variável, informa ao compilador que esta é uma variável ponteiro para um inteiro, então vamos lá, se quiser atribuir, por exemplo, o endereço da variável altura que criamos acima para o nosso ponteiro, faça o seguinte:
ponteiro = &altura;
Como pôde perceber, o operador & retorna o endereço da variável, que em seguida atribuímos a ponteiro. Verifique o resultado do seguinte algoritmo:
int altura;O que acontece é que ponteiro acaba possuindo o mesmo valor da variável altura, isso acontece, por que ponteiro possui o endereço de altura, então ele saberá o valor desta posição. Obs: Para mostrar o valor de uma variável ponteiro utilize a sintaxe *nome_da_variavel.
int *ponteiro;
altura = 14;
ponteiro = &altura;
printf("Altura:%d \nPonteiro: %d \n",altura,*ponteiro);
return 0;
Ta, sabemos declarar, atribuir valor e ler o valor do endereço que o ponteiro aponta, e para que serve isso tudo? Bom uma das utilidades é alteração de variáveis em outras funções, por exemplo, se declarasse uma variável na função com o nome salário, e quisesse aumentar o valor desta em uma função chamada aumento_salario, como faria sem usar ponteiro? Observe o seguinte algoritmo e veja o seu retorno:
Como pôde perceber, o salário não foi dobrado como esperado. Mas por que isso aconteceu, já que estamos chamando a função aumento_salario, antes de printarmos? Isso acontece por que o argumento recebido na função é apenas uma cópia do valor que a variável salario possui. Então a variável aumento na função é totalmente independente da variável salario, no primeiro momento ela possui o valor 1200, logo após o seu valor é dobrado, contudo isso não altera a nossa variável principal. Então uma forma de resolver esse problema é receber um ponteiro na função desse modo:
Então ao invés de passarmos o valor da variável, passamos o endereço e isso resolve o nosso problema. Essa foi uma das aplicações de ponteiros, outra aplicação seria com alocação dinâmica de memória que já falamos aqui no blog. Essa foi uma introdução a ponteiros há muita coisa que se pode fazer, então bons estudos e até a próxima!
0 comentários:
Postar um comentário