Ponteiros

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1246 palavras )
  • Download(s) : 0
  • Publicado : 13 de junho de 2012
Ler documento completo
Amostra do texto
AED - Algoritmos e Estrutura de Dados Material de apoio 4 Profª Tatiana Deltrejo Bezerra

1- PONTEIROS
Da mesma maneira que existem em C variáveis do tipo char, int e float, existem variáveis do tipo ponteiro. É uma das mais poderosas estruturas oferecidas pela linguagem C. Um ponteiro proporciona um modo de acesso às variáveis sem referenciá-las diretamente. O mecanismo usado para isto é oendereço da variável, sendo o ponteiro a representação simbólica de um endereço, ou seja, é um tipo de variável que armazena endereço de memória. Uso de Ponteiros • permitem a modificação de argumentos de funções: permitem que uma função altere valores de variáveis não globais e não locais a ela através da referência ao endereço de memória da variável passada como parâmetro para a função; permitem ouso de rotinas de alocação dinâmica de memória: alocação e desalocação de memória do sistema em tempo de execução conforme a necessidade do programa; permitem a criação de estruturas de dados complexas, como listas encadeadas e árvores binárias, onde um item deve conter referências a outro; aumento de eficiência em determinadas rotinas.

• • •

A memória do computador é dividida em bytes, eestes bytes são numerados de 0 até o limite da memória da máquina. Estes números são chamados endereços de bytes. Um endereço é a referência que o computador usa para localizar variáveis. Toda variável ocupa certa localização na memória, e seu endereço é o do primeiro byte ocupado por ela. Cada tipo de dado ocupa uma quantidade de bytes na memória, por exemplo, um tipo char ocupa 1 byte e um tipofloat ocupa 4 bytes.

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 ...

char sexo;

Variáveis do tipo char, que armazenam caracteres, ocupam 1 byte

int idade;

Variáveis do tipo int, que armazenam números inteiros, ocupam 4 bytes

float preco;

Variáveis do tipo float, que armazenam números com vírgulas, ocupam 4 bytes

char uf[2];

Como cada char ocupa 1 byte, os vetores de caracteres(strings) ocupam tantos bytes quantos forem seus elementos (neste caso são 2)

1

AED - Algoritmos e Estrutura de Dados Material de apoio 4 Profª Tatiana Deltrejo Bezerra

Exemplo: O programa a seguir mostra quantos bytes são utilizados por um determinado tipo de dado. No exemplo, o tipo testado é o int ,float e o char. Código fonte #include #include main() { int a; float b; char c[2];printf("\nint= %d byte(s)\n",sizeof a); printf("\nfloat= %d byte(s)\n",sizeof b); printf("\nchar= %d byte(s)\n\n",sizeof c); system("pause"); } Declaração Os ponteiros são iguais às variáveis comuns. A única diferença está no fato dele armazenar um endereço, e não um dado ou valor. Para informar que você quer declarar um ponteiro, e não uma variável comum coloque o símbolo de asterisco ao lado do tipo davariável: tipo * nome_variável // onde tipo é o tipo de variável apontada pela variável ponteiro. Tela do computador Tela do computador mostrará int= 4 byte (s) float= 4 byte (s) char= 2 byte (s) Pressione qualquer tecla para continuar ...

O símbolo de asterisco é que vai indicar ao c que você quer um ponteiro e não uma variável comum. Fora esse detalhe, a declaração é idêntica a de uma variávelcomum. Isso significa que se você vai armazenar o endereço de uma variável do tipo int, deve criar um ponteiro para int (que é int*). Se for char, um ponteiro para char (char*). Exemplos de declaração: declara que as variáveis: nome, sexo, idade e medida são do tipo char, int e float respectivamente e são ponteiros também. char *ponteiro, *nome, *sexo; int *idade; float *medida; Na última linhatemos: • • medida é um ponteiro de float, ou seja, medida apontará para uma região de memória que armazena um valor float. você está criando uma variável chamada medida que vai armazenar endereços de variáveis do tipo float.

2

AED - Algoritmos e Estrutura de Dados Material de apoio 4 Profª Tatiana Deltrejo Bezerra

Operadores para Ponteiros Existem dois operadores unários para trabalhar com...
tracking img