Um computador usa a memória para armazenar dados com valores, tais como números, caracteres e valores de bits. Os dados são armazenados nas células de memória identificadas com um único endereço de memória . Os ponteiros são estruturas de dados que não contêm valores , em vez disso , os ponteiros conter um endereço de memória de uma célula de memória que armazena um valor. Ponteiros são úteis porque eles permitem que você construir estruturas de dados sem tamanho definido (como matrizes e listas ligadas ) , alocar e desalocar memória dinâmica e executar manipulação de dados indireta. C Cordas
linguagens de programação trabalham com recursos limitados. Um programa deve saber o quanto de memória ele vai precisar antes da execução. Isto cria o problema da gestão de um tipo de dados que não tem tamanho definido ( por exemplo , um programa que "lê" parágrafos, com cada parágrafo com um comprimento diferente). Ponteiros resolver esta situação na forma de strings C . Corda AC é composto por um ponteiro que aponta para o primeiro caractere na corda, e um personagem que sinaliza o fim da string (como o caractere de nova linha , "\\ n" ) . O ponteiro fica aumentada em 1 a cada vez, até que ele aponta para o último caractere ("\\ n") .
Listas ligadas
uma lista encadeada é uma lista que aumenta o seu tamanho à medida que novos elementos são adicionados à lista. Ao contrário de arrays e strings C que armazenam dados seqüencialmente na memória, listas ligadas não são necessariamente armazenados em endereços de memória adjacentes. Listas encadeadas são formadas por nós , e cada nó aponta para o próximo nó . A vantagem desta estrutura de dados é que a lista muda o seu tamanho com base nas necessidades do usuário .
Memória Dinâmica Alocação
Programas normalmente alocar a memória quando estão construído . Às vezes, a memória alocada não é suficiente para lidar com dados com tamanho desconhecido . Os programadores usam uma técnica chamada de alocação dinâmica de memória para ter certeza de que o programa pode superar este problema. A memória dinâmica é acessado por meio de um ponteiro para apontar para um endereço de memória fora da memória reservada inicialmente pelo programa. Ponteiros também liberar a memória , uma vez que não é mais necessário .
Manipulação de dados indireta
Linguagens de programação muitas vezes exigem a modificação do valor dos dados. Programas de usar funções para modificar e executar operações em dados. Devido à hierarquia de programas , dados, são copiados e desatribuído uma vez que é passado para as funções . Funções modificar os dados, mas uma vez que os dados são usados , estas alterações serão perdidas. Usando ponteiros em vez de tipos de dados básicos garante que passamos um endereço de memória para funções. Desta forma, qualquer alteração nos dados armazenados no endereço de memória permanecerá para o resto da execução do programa.