Académique Documents
Professionnel Documents
Culture Documents
Linguagem C
Ponteiros
Slice 14
Prof. SIMO
Jean Marcelo SIMO
Endereo na
memria
Varivel na
memria
1000
1003
1001
1002
1003
1004
Exemplo
#include <stdlib.h>
#include <stdio.h>
int main()
{
int x, y;
x = 1;
int* p;
p = &x;
y = *p;
// ...
// ...
printf ("O
O valor da varivel x : %i. \n", x);
printf ("O
O endereo da varivel x : %p. \n", &x);
printf ("\n");
printf ("O
O valor da varivel x via o ponteiro p : %i. \n", *p);
printf ("O
O endereo da varivel x via o ponteiro p: %p. \n", p);
printf ("O
O endereo do ponteiro p : %p. \n", &p);
printf ("\n");
printf ("O
O valor da varivel y, adquirido de x, via p: %i. \n", y);
printf ("O
O endereo da varivel y : %p. \n", &y);
printf ("\n");
// O %p serve para expressar o valor de um endereo de memria.
system("Pause");
return 0;
}
Exemplo
#include <stdlib.h>
#include <stdio.h>
int main()
{
int x, y;
x = 1;
int *p;
p = &x;
y = *p;
printf ("O
O valor da varivel x : %i. \n", x);
O endereo da varivel x : %p. \n", &x);
printf ("O
printf ("\n");
printf ("O
O valor da varivel x via o ponteiro p : %i. \n", *p);
printf ("O
O endereo da varivel x via o ponteiro p: %p. \n", p);
printf ("O
O endereo do ponteiro p : %p. \n", &p);
printf ("\n");
printf ("O
O valor da varivel y, adquirido de x, via p: %i. \n", y);
printf ("O
O endereo da varivel y : %p. \n", &y);
printf ("\n");
// O %p serve para expressar o valor de um endereo de memria.
system("Pause");
return 0;
}
Exemplo 2
#include <stdlib.h>
#include <stdio.h>
int main()
{ int x, y; x = 1;
int *p;
p = &x;
y = *p;
printf ("O
O valor da varivel x : %i. \n", x);
O endereo da varivel x : %p. \n \n", &x);
printf ("O
printf ("O
O valor da varivel x via o ponteiro p : %i. \n", *p);
printf ("O
O endereo da varivel x via o ponteiro p: %p. \n", p);
printf ("O
O endereo do ponteiro p : %p. \n \n", &p);
printf ("O
O valor da varivel y, adquirido de x, via p: %i. \n", y);
printf ("O
O endereo da varivel y : %p. \n \n", &y);
*p = 5;
Exemplo 3
#include <stdlib.h>
#include <stdio.h>
// O segundo parmetro um ponteiro de real (float)
void area_quadrado (float ld, float *ar)
{
// Aqui o valor da varivel apontada pelo ponteiro ar ser alterada.
*ar = (ld * ld);
// bem por isto que se diz que uma passagem por referncia...
}
int main()
{
float lado, area;
area = -1;
lado = 2;
// No segundo parmeto passa-se o endereo da varivel area
// para o ponteiro ar, definido na funo acima (vide acima).
area_quadrado (lado, &area);
printf("O valor da rea : %f \n", area);
system("Pause");
return 0;
}