Microsoft PowerPoint - Aula 02 - PONTEIRO
Microsoft PowerPoint - Aula 02 - PONTEIRO
Microsoft PowerPoint - Aula 02 - PONTEIRO
Aula 02 - Ponteiro
Prof. Esp.: Paulo Roberto Freitas Rodrigues
Endereços
• A memória do computador é uma seqüência de bytes. Cada byte
armazena um de 256 possíveis valores.
• Cada objeto na memória do computador ocupa um certo numero de
bytes consecutivos.
• Uma char ocupa 1 byte, um int ocupa 4 bytes e um double ocupa 8 bytes.
main(){
}
Endereços
• O endereço de uma variável é dados pelo operador &.
• Não confunda o uso de “&” com o operador AND, que em C se
escreve “&&”.
printf("Conteudo da Variavel:
Variavel %d\n", inteiro);
printf("Endereco da Variavel:
Variavel %d\n", &inteiro);
printf("Conteudo da Variavel:
Variavel %.2f\n", decimal);
printf("Endereco da Variavel:
Variavel %d\n", &decimal);
printf("Conteudo da Variavel:
Variavel %c\n", letra);
printf("Endereco da Variavel:
Variavel %d\n", &letra);
}
Ponteiros
• Um ponteiro é simplesmente uma variável que armazena o
endereço de outra variável.
• Tipo *variavel;
• int *a; /*ponteiro para inteiro*/
• char *a; /*ponteiro para char*/
char
• Ffoat *a; /*ponteiro para float*/
float
Exemplo de Apontador
#include <stdio.h>
main(){
int inteiro = 5;
int *pInteiro = &inteiro;
}
Exemplo de apontador
#include <stdio.h>
main(){
int inteiro = 5;
int *pInteiro = &inteiro;
*pInteiro = 15;
• P1 = p2;
• Assim p1 aponta para o mesmo lugar que p2. usar p1 será equivalente a usar
p2.
• *p1 = *p2;
• Iguala os valores apontados. Alterar o valor apontado por p1 para o valor
apontado por p2.
Operações com Ponteiros
• p1++;
• Incrementar o ponteiro. Ele passa a apontar para o próximo valor do mesmo
tipo. Se o ponteiro é para um inteiro e é incrementado, passa a apontar para
o próximo inteiro.
• (*p1)++;
• Altera o valor apontado por p. Incrementa o conteúdo da variável apontada
pelo ponteiro p1.
Operações com Ponteiros
#include <stdio.h>
void imprimeMatriz(int *p1){
int i;
for(i=0;i<5;i++){
printf("\nConteudo da Matriz na posicao antes %d=%d", i, *p1);
(*p1)++;
printf("\nConteudo da Matriz na posicao depois %d=%d", i, *p1);
printf("\nEndereco de memoria = %d", p1);
printf("\n");
p1++;
}
}
main(){
int matriz[5] = {6, 7, 8, 9, 10};
imprimeMatriz(matriz);
}
Ponteiros e Strings
#include <stdio.h>
main(){
char nome[100] = "Paulo Roberto";
char *pNome;
pNome = nome;
while(*pNome != NULL){
//putchar(*pNome);
printf("%c", *pNome);
pNome++;
}
}
Exercício