Campos Arquivo Tulio Almeida Peixoto 2015 1 01 Estrutura De Dados 01331 11 2 1425252533533
1236 palavras
5 páginas
INF1007: Programação 21 – 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