Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Vantagens e Desvantagens dos Ponteiros
Dependendo de quem você perguntar, os ponteiros são uma bênção ou uma maldição. Ponteiros fornecem um mecanismo para acessar diretamente e objetos e código de modificação na memória. Os ponteiros são usados ​​em muitas linguagens de programação para manipular cadeias de caracteres, passar parâmetros para funções , manipulação matrizes de dados e criação de listas ligadas e outras estruturas de dados complexas . Enquanto ponteiros lhe proporcionar uma grande flexibilidade para o gerenciamento de memória e otimização de algoritmos , há desvantagens . Aprender a usar ponteiros é difícil para muitos programadores, e problemas ponteiro depuração é um desafio. Otimização

Ponteiros fornecem uma vantagem de desempenho , permitindo que você acesse a memória do computador diretamente. Em um programa de computador, a maneira mais rápida de acessar e modificar um objeto é acessar diretamente a memória física onde o objeto está armazenado. Esta técnica é comumente usado para otimizar os algoritmos que requerem acesso freqüente ou repetitiva a grandes quantidades de dados.
Segurança

acesso direto à memória significa que você pode fazer coisas que talvez você não deveria. Dependendo do idioma , o compilador e da plataforma do computador, você pode acidentalmente ( ou intencionalmente ) de memória de acesso que não é seu para acessar . Como resultado, você pode substituir a memória crítica, modificar o código de um aplicativo em execução , ou fazer com que seu aplicativo ou de outro aplicativo se comportar ou sair inesperadamente. Um erro comum é executar após o final de um array, acessando a memória além do fim do espaço alocado para essa matriz.
Gerenciamento de Memória

Gerenciando o uso de memória em um aplicativo usando ponteiros oferece flexibilidade , mas também é uma tarefa árdua. Alocação e desalocação de memória conforme necessário durante o tempo de execução permite criar objetos grandes , como matrizes , de forma rápida e imediatamente liberar a memória quando ele não é mais necessário. No entanto, também é fácil criar vazamentos de memória através da reafectação de um ponteiro , sem liberar a memória que estava apontando para primeiro. A coleta de lixo é de sua responsabilidade.

Parâmetros da Função

Funções podem retornar apenas um valor, mas eles podem ter vários parâmetros. Ao passar em ponteiros para variáveis ​​como parâmetros , uma função pode ser usada para definir os valores dessas variáveis ​​, e os novos valores vão persistir após o retorno da função . Ser capaz de definir o valor de uma série de variáveis ​​de uma vez com uma única chamada de função é limpo e eficiente . No entanto, ele pode ser um pouco confuso para ler, porque você não pode dizer se as variáveis ​​passadas em será modificado ou não simplesmente por olhar para a chamada de função . Você terá que olhar a documentação função para aprender a função se comporta
ponteiros de função

Ponteiros não são apenas para objetos na memória ; . Eles também podem ser usados para as funções , permitindo , assim, uma função a ser passado como um parâmetro para outra função. Um ponteiro de função pode ser atribuído o endereço de uma das opções de funções , de modo que o ponteiro atua como uma espécie de apelido. Linguagens de programação orientada a objetos ter eliminado a necessidade de ponteiros de função com herança e polimorfismo .

Pointer Confusão

Ponteiros são um tema confuso para muitos programadores , principalmente aqueles com experiência em usando linguagens que não possuem ponteiros e acesso direto à memória . No entanto , a persistência leva rapidamente a maestria de ponteiros . Ponteiros são frequentemente acompanhadas de sintaxe obscura. Convenções de nomenclatura de variáveis ​​consistentes podem ajudar o seu código mais legível. Por exemplo, as convenções de nomenclatura comuns incluem o uso de " p_ " ou " ptr_ " como um prefixo para ponteiro nomes de variáveis.
Dicas

Sempre use as funções de alocação fornecidos pelo idioma para alocação de memória , e verifique se a memória foi alocada antes de usá-lo. Tenha cuidado com gerenciamento de memória e liberar memória quando ele não é mais necessário. Se voltar a atribuir um ponteiro para um novo endereço de memória , certifique-se a memória antiga é liberado ou atribuído a um ponteiro diferente. Certifique-se de que os ponteiros criados em funções são atribuídas a propriedade para o alcance dos pais ou de que a memória é desalocado antes de sair da função.

Anterior :

Próximo : No
  Os artigos relacionados
·Como comparar as diferenças em duas linhas em Oracle S…
·Como alterar um arquivo de OST para PST 
·Tipos conflitantes em C 
·Como editar um arquivo MSI 
·Como contar entradas exclusivas em uma planilha Lotus 1…
·Como converter uma data Transact- SQL em um String 
·Como substituir caracteres usando XPath 
·Como escrever um programa para verificar se uma string …
·VBScript : Como redefinir o tamanho da caixa de correio…
·As vantagens de Fortran 
  Artigos em destaque
·Como os programadores usam Classe Atributos e Métodos …
·Como criar um conjunto de função retorna 
·Como criar um conjunto de dados hierárquica 
·Como usar a função strstr em C + + 
·Como converter um polígono para um Path 
·Como usar um dblink para o Oracle bloqueio Serviços 
·Como Ler Tempo em UML 
·O que são leves de layout e Linguagens de marcação 
·A diferença entre um Helios & Galileo Eclipse 
·Como implementar um algoritmo para o seu computador 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados