Вы находитесь на странице: 1из 10

Estrutura de Dados I: Ponteiros

Prof. Esp. Renner da Silva Sadeck

Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas (TADS)


Diretoria de Graduao/ IFRR Campus Boa Vista Centro
http://tads.ifrr.edu.br

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiro Fev,de 2016 1


Ponteiros

Ponteiros - Definio
Sao variveis que possuem o endereo de memria de uma outra varivel ou
funo

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 2


Ponteiros

Declarao de ponteiros
tipo_do_ponteiro *nome da varivel

int *ptr; // define a varivel ptr como ponteiro para uma varivel do tipo int
char *ch1,*ch2; // ponteiros para o tipo char

452
ptr

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 3


Ponteiros

Inicializacao de Ponteiros

necessrio apenas atribuir-se um endereo de memria

int var;
int * ptr;
var=10;
ptr=&var; // ptr passa a ter o endereo de var

452 453

452 10
ptr var

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 4


Ponteiros

Inicializacao de Ponteiros

int a; p 108
int *p; a 104

p 108
a=5; a 5 104

p 104 108
p=&a; 5
a 104

p 104 108
*p=6; a 6 104

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 5


Ponteiros

Exemplo1 de uso de Ponteiros

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int a;
int *p;
p = &a;
*p = 2;
printf(" %d ", a);
return (EXIT_SUCCESS);
}

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 6


Ponteiros

Exemplo2 de uso de Ponteiros


int main(int argc, char** argv) {
int a;
int b;
int c;
int *ptr; /* declara um ponteiro para um inteiro */ /* um
ponteiro para uma varivel do tipo inteiro */
a = 100;
b = 2;
c = 3;
ptr = &a; /* ptr recebe o endereo da varivel a */
printf("Valor de ptr: %p, Contedo de ptr: %d\n", ptr, *ptr);
printf("B: %d, C: %d \n", b, c);
a = 200;
printf("Valor de ptr: %p, Contedo de ptr: %d\n", ptr, *ptr);
return (EXIT_SUCCESS);
}
Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I- Ponteiros Fev,de 2016 7
Ponteiros

Exemplo3 de uso de Ponteiros

#include <stdio.h>
#include <stdlib.h>

/*
*
*/
int main ( void )
{
int a, b, *p;
a = 2;
*p = 3;
b = a + (*p);
printf(" %d ", b);
return (EXIT_SUCCESS);
}

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 8


Ponteiros

Exemplo4 de uso de Ponteiros

#include <stdio.h>
#include <stdlib.h>
void troca (int x, int y ) {
int temp;
temp = x;
x = y;
y = temp;
}
int main ( void )
{
int a = 5, b = 7;
troca(a, b);
printf("%d %d \n", a, b);
return 0; }

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 9


Ponteiros

Exemplo5 de uso de Ponteiros

#include <stdio.h>
#include <stdlib.h>
void troca (int *px, int *py ) {
int temp;
temp = *px;
*px = *py;
*py = temp;
}
int main ( void )
{
int a = 5, b = 7;
troca(&a, &b);
printf("%d %d \n", a, b);
return 0; }

Renner da Silva Sadeck IFRR/TADS Estrutura de Dados I - Ponteiros Fev,de 2016 10