Campos Arquivo Tulio Almeida Peixoto 2015 1 01 Estrutura De Dados 01331 11 2 1425252533533

1236 palavras 5 páginas
INF1007: Programação 2

1 – Ponteiros

17/02/2014

(c) Dept. Informática - PUC-Rio

1

Tópicos
• Ponteiros:
– Operadores usados com Ponteiros

– Passagem de Ponteiros para Funções

17/02/2014

(c) Dept. Informática - PUC-Rio

2

Ponteiros int main ( void )
{
int a; int *p; p = &a;
*p = 2; printf(" %d ", a); return 0;
}
imprime o valor 2

17/02/2014

(c) Dept. Informática - PUC-Rio

3

Ponteiros
• Operadores usados com Ponteiros:
– Operador unário & (“endereço de”)

– Operador unário * (“conteúdo de”)

17/02/2014

(c) Dept. Informática - PUC-Rio

4

Ponteiros int main ( void )
{
int a; int *p=&a;
*p = 2; printf(" %d ", a); return 0;
}
imprime o valor 2

17/02/2014

(c) Dept. Informática - PUC-Rio

5

Ponteiros: cuidados int main ( void )
{
int a, b, *p; a = 2;
*p = 3; b = a + (*p); printf(" %d ", b); return 0;
}
– erro na atribuição *p = 3
• utiliza a memória apontada por p para armazenar o valor 3, sem que p tivesse sido inicializada, logo
• armazena 3 num espaço de memória desconhecido

17/02/2014

(c) Dept. Informática - PUC-Rio

6

Funções que mudam valores de variáveis de outras #include <stdio.h> void troca(int a, int b); int main (void)
{
int a=10, b=20; troca(a,b); printf(" a=%d b=%d\n",a,b);
}
void troca(int a, int b) { int tmp=b; b=a; a=tmp;
}
a=10

b=20

Press any key to continue
17/02/2014

(c) Dept. Informática - PUC-Rio

7

Funções que mudam valores de variáveis de outras #include <stdio.h>

Pilha de memória

void troca(int a, int b); int main (void)
{
int a=10, b=20; troca(a,b); printf(" a=%d b=%d\n",a,b);
}

7020
7016
7012
7008

void troca(int a, int b) { int tmp=b; b=a; a=tmp;
}

17/02/2014

(c) Dept. Informática - PUC-Rio

main

b

20

7004

a

10

7000

8

Funções que mudam valores de variáveis de outras #include <stdio.h>

Pilha de memória

void troca(int a, int b); int main (void)
{
int a=10, b=20; troca(a,b); printf(" a=%d b=%d\n",a,b);
}
void troca(int a, int b) { int tmp=b; b=a; a=tmp;
}

17/02/2014

(c) Dept. Informática - PUC-Rio

Relacionados