Ponteiros
Matéria P2: Ponteiros
INF1004 e INF1005 – Programação 1
Pontifícia Universidade Católica Departamento de Informática
Tópicos Principais
Ponteiros:
– Operadores usados com Ponteiros – Passagem de Ponteiros para Funções
1
INF1004 e INF1005 – Programação 1 Ponteiros
Ponteiros
Operadores usados com Ponteiros:
– Operador unário & (“endereço de”) – Operador unário * (“conteúdo de”)
Ponteiros int main (void) { int a; int *p; /* declaração */ p = &a; /* inicialização */ *p = 2; printf(“%d”, a); return 0; } SAÍDA: Imprime o valor 2.
2
INF1004 e INF1005 – Programação 1 Ponteiros
Ponteiros int main ( void ){ int a; int *p=&a; /*declaração e inicialização*/ *p = 2; printf(" %d ", a); return 0; } SAÍDA: Imprime o valor 2.
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 em um espaço de memória desconhecido.
3
INF1004 e INF1005 – Programação 1 Ponteiros
Funções que mudam valores de variáveis de outras
#include 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...
Funções que mudam valores de variáveis de outras
#include 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; }
4
INF1004 e INF1005 – Programação 1 Ponteiros
Funções que mudam valores de variáveis de outras
#include 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; }
Funções que mudam valores de variáveis de outras
#include void troca(int a, int b); int main