Você está na página 1de 11

ESTRUTURA DE DADOS I

Prof. Msc. Aldo M. Paim


aldo.paim@ifpr.edu.br
Ponteiro

O que é um ponteiro em C?

▪ Um ponteiro é uma variável especial que contém um


endereço de memória armazenado, em vez de dados
comuns.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 2


Ponteiro

O que é um ponteiro em C?

▪ Um ponteiro é uma variável especial que contém um


endereço de memória armazenado, em vez de dados
comuns.
▪ Esse endereço é, no geral, a posição na memória de uma
outra variável.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 3


Ponteiro

O que é um ponteiro em C?

▪ Um ponteiro é uma variável especial que contém um


endereço de memória armazenado, em vez de dados
comuns.
▪ Esse endereço é, no geral, a posição na memória de uma
outra variável.
▪ Desta forma, a variável que contém esse endereço aponta
para a outra variável. Daí o nome “ponteiro“.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 4


Ponteiro

Por que utilizar ponteiro?

▪ Eles são úteis em inúmeros contextos, como por


exemplo no suporte à rotinas de alocação dinâmica de
memória e na construção de TAD – Tipos de Dados
Abstratos – como por exemplo pilhas, listas e filas.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 5


Ponteiro

A figura a seguir ilustra a ideia geral de funcionamento de um ponteiro:

IFPR – Campus Palmas ESTRUTURA DE DADOS I 6


Ponteiro

Na figura, temos representados endereços na memória RAM do


computador, e um conjunto de variáveis criadas nesses endereços.
podemos ver que no endereço 5000 existe uma variável ponteiro,
cujo conteúdo é o endereço de memória 5004 – ou seja, esse
ponteiro aponta para a variável que está localizada no endereço
5004 da memória RAM.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 7


Ponteiro

Declarando ponteiros

tipo *nome;

IFPR – Campus Palmas ESTRUTURA DE DADOS I 8


Ponteiro

Declarando ponteiros

tipo *nome;

float *ponteiro;

IFPR – Campus Palmas ESTRUTURA DE DADOS I 9


Ponteiro

Exemplo em C

IFPR – Campus Palmas ESTRUTURA DE DADOS I 10


Exercício de fixação

1. Crie um programa que declare duas variáveis (inteiro e float) atribua


valores para elas e crie dois ponteiros, cada um apontando para uma
destas variáveis. Mostre na tela: O valor e o endereço de memória das
variáveis, o valor do ponteiro, o endereço do ponteiro e o valor apontado
pelo ponteiro.

IFPR – Campus Palmas ESTRUTURA DE DADOS I 11

Você também pode gostar