Ponteiros na linguagem c

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1353 palavras )
  • Download(s) : 0
  • Publicado : 27 de março de 2013
Ler documento completo
Amostra do texto
Ponteiros: conceitos, operações, aplicações e riscos.


Resumo - Este artigo tem a função de apresentar conceitos de ponteiros na linguagem C, que são variáveis que alocam endereços de memória de uma outra variável. No entanto tem uma utilização complexa, e seu mau uso pode comprometer o código fonte.

Abstract - This article serves to present concepts of Pointers in C language, which arevariables that allocate memory address of another variable. However, it has a complex use, and it's misuse can compromise the source code.

INTRODUÇÃO

Ponteiros são ferramentas muito importantes e complicadas para a programação em C. São muito poderosos, possibilitando diversos recursos ao programador desde formular melhores estruturas de dados, como aproveitar mais os espaços de memóriautilizados.

VARIÁVEIS

O conceito de ponteiros está diretamente relacionado às variáveis, fazendo-se necessário relembrar sua ideia principal.

Variáveis são locações de memória recuperáveis, as quais armazenam dados de diferentes características (tipos), dentre eles números inteiros, racionais, caracteres, para que sejam utilizadas em função do programa executado [1]. Sãodefinidas na forma de ‘tipo_da_var nome_da_var’, ao passo que pode-se estipular um valor na forma de ‘nome_da_var = valor’.

ENDEREÇOS DE MEMÓRIA

Superficialmente, entende-se por endereço de memória como uma forma do computador identificar uma parte da memória RAM que servirá como armazenamento de dados, dando lhe uma especificação (um endereço) [2]. Este recurso é utilizado pelo própriocomputador à medida que, por exemplo, são designadas as variáveis no código-fonte.

OS PONTEIROS

A partir do conceito de variáveis, nota-se que quando se define uma variável, comumente chegará o momento de lhe dar um valor. Dessa forma, os Ponteiros são variáveis das quais os valores são Endereços de Memória, ou seja, seus valores são a locação de outra variável [3].

A utilização deum ponteiro apresenta-se na forma 'tipo_var *nome_ponteiro'. Por exemplo, o comando int *pont declara um ponteiro ao compilador, do tipo inteiro, com o nome 'pont' [4]. A partir daqui, é possível utilizar o ponteiro criado para direcionar ao endereço de outras variáveis do código:

int a=25
int *pont
pont=&a

Este trecho de código define uma variável ‘a’ do tipo inteiro, e o ponteiro‘pont’, que apontará para ‘a’ quando definido o comando ‘pont=&a’, onde o caractere & indica que o ponteiro está recebendo o endereço de memória de ‘a’. Neste sentido, o valor de ‘a’ e ‘pont’ são iguais [5].

Analisando como endereço de memória, a posição de memória é considerada para apontar as variáveis. Continuando o exemplo anterior, diz-se que a variável ‘a’ está localizada em umendereço de memória - 2000, por exemplo. O ponteiro ‘pont’, por sua vez, está localizado em outro endereço – 3000. Porém, ao declarar 'pont=&a', teremos o endereço de 'a' incorporado ao ponteiro [3]. Esquematicamente:

a: localiza-se em 2000; valor = 25

pont: localiza-se em 3000; valor = 2000 (endereço de ‘a’) e, consequentemente, 25.

É interessante notar a característica principal doponteiro, de possuir dois endereços: o seu próprio como variável, ao mesmo tempo que aponta para outro distinto. [4]

OPERAÇÕES

A Linguagem C possibilita que sejam executadas algumas operações básicas com ponteiros [10]. As operações possíveis são Incrementar, Decrementar, Somar, Subtrair, Comparar e Igualar Ponteiros [11].

INCREMENTO E DECREMENTO

Ao incrementar umponteiro, ele passa a apontar para o próximo valor do mesmo tipo que ele aponta [11]. Isso significa que um ponteiro para um inteiro, ao ser incrementado, passará a apontar para o próximo inteiro. Em função disso se faz necessária a indicação do tipo de ponteiro, de forma que o compilador consiga efetuar a operação desejada da forma correta. O decremento do ponteiro segue o mesmo princípio [9]....
tracking img