ponteiro na linguagem c sao variaveis q aponta para variaveis do mesmo tipo, por exemplo no programa abaixo
na source acima foi declarada duas variaveis x e y, a variavel y e recebe o valor da variavel x entao y e x fica com mesmo valor q é 10, veja a proxima source
na source acima y recebe o valor da variavel x, porem depois x recebe o valor 20 mais y continua com o valor 10, para y ter o valor da variavel x teria q fazer denovo a funçao y = x;
isso resolveria as coisas porem vc iria encher sua source com a mesma funçao varias e varias vezes, para facilitar isso existe o ponteiro ele aponta para parte da memoria q esta a variavel assim quando ela mudar o valor do ponteiro muda junto, para declarar um ponteiro é igual declarar uma variavel normal só q coloca o asterisco antes do nome da variavel por exemplo
agora q agente sabe como declarar um ponteiro so falta saber como usar, para isso vamos usar o primeiro exemplo
na source acima nao mudo muita coisa nao so q na variavel y coloco * no começo indicando q é um ponteiro, e na parte q o y recebe x tem o & indicando o endereço na memoria da variavel x, agora mesmo q o valor da variavel x mude, quando ler o valor vai ser o mesmo da variavel x
tambem existe ponteiro de ponteiro, um ponteiro aponta para onde o outro ponteiro ta apontando (lol pera ai q eu me enrolei aq kkkkkkkkkkkk), para usar ponteiro de ponteiro basta usar mais * veja
na source acima f ta apontando para y q ta apontando para x, quando leu o valor do ponteiro f leu o mesmo valor do ponteiro y q era o mesmo valor de x, uso de ponteiro para ponteiro é ilimitado vc pode criar um ponteiro q aponta para outro e assim infinitamente para cada ponteiro de ponteiro é um * a mais se for 5 ponteiros entao seria *****p
by hacker fts315
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, y;
x = 10;
y = x;
printf("%d",y);
return 0;
}
na source acima foi declarada duas variaveis x e y, a variavel y e recebe o valor da variavel x entao y e x fica com mesmo valor q é 10, veja a proxima source
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, y;
x = 10;
y = x;
x = 20;
printf("%d",y);
return 0;
}
na source acima y recebe o valor da variavel x, porem depois x recebe o valor 20 mais y continua com o valor 10, para y ter o valor da variavel x teria q fazer denovo a funçao y = x;
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, y;
x = 10;
y = x;
x = 20;
y = x;
printf("%d",y);
return 0;
}
isso resolveria as coisas porem vc iria encher sua source com a mesma funçao varias e varias vezes, para facilitar isso existe o ponteiro ele aponta para parte da memoria q esta a variavel assim quando ela mudar o valor do ponteiro muda junto, para declarar um ponteiro é igual declarar uma variavel normal só q coloca o asterisco antes do nome da variavel por exemplo
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, *y;
return 0;
}
agora q agente sabe como declarar um ponteiro so falta saber como usar, para isso vamos usar o primeiro exemplo
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, *y;
x = 10;
y = &x;
printf("%d",*y);
return 0;
}
na source acima nao mudo muita coisa nao so q na variavel y coloco * no começo indicando q é um ponteiro, e na parte q o y recebe x tem o & indicando o endereço na memoria da variavel x, agora mesmo q o valor da variavel x mude, quando ler o valor vai ser o mesmo da variavel x
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, *y;
x = 10;
y = &x;
x = 123;
x = 55;
x = 5000;
x = 315;
printf("%d",*y);
return 0;
}
tambem existe ponteiro de ponteiro, um ponteiro aponta para onde o outro ponteiro ta apontando (lol pera ai q eu me enrolei aq kkkkkkkkkkkk), para usar ponteiro de ponteiro basta usar mais * veja
- Código:
//by hacker fts315
#include <stdio.h>
int main(void)
{
int x, *y,**f;
x = 10;
y = &x;
f = &y;
printf("%d",**f);
return 0;
}
na source acima f ta apontando para y q ta apontando para x, quando leu o valor do ponteiro f leu o mesmo valor do ponteiro y q era o mesmo valor de x, uso de ponteiro para ponteiro é ilimitado vc pode criar um ponteiro q aponta para outro e assim infinitamente para cada ponteiro de ponteiro é um * a mais se for 5 ponteiros entao seria *****p
by hacker fts315