·

Cursos Gerais ·

Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

Ponteiro em C: Definição\npor Fernando Deluno Garcia em segunda-feira, 14 de dezembro de 2015.\n\nOlá, caro leitor! Este artigo tem o intuito de declarar um recurso muito importante da linguagem C, o ponteiro veremos que a definição gera é simples de compreender, porém a utilização incorreta deste recurso pode ocasionar problemas muito graves para uma aplicação.\n\nAfinal, o que é um ponteiro?\nEm poucas palavras o definição é bem simples: um ponteiro é uma variável que contém um endereço de memória [1]. Esta definição é simples, mas os entendimentos corretos acerca da utilização deste recurso começa pela compreensão de como a memória de um programa é organizada, ou ainda, o que é um endereço de memória.\n\nMemória\nGrosso modo, uma memória pode ser definida como um conjunto de elementos que armazenam informações. Esses elementos chamamos de palavras, sendo cada palavra identificada em memória única a partir de um endereço, isto é, o endereço de uma localização da palavra que será acessada a memória é, e quantidade de bytes que a palavra representa. A memória é\n\nhttp://www.embarcados.com.br/ponteiro-em-c-definicao/ int *pt;\npt = (int *)malloc(10 * sizeof(int));\nif (pt != NULL) {\n\t// operação bem-sucedida\n} else {\n\t// falha de alocação\n}\n\nModificadores de Acesso\n\nAssim como qualquer variável os ponteiros também podem ser declarados utilizando modificadores de acesso.\n\nDeclaração sem modificadores: O conteúdo de 'var' pode ser alterado utilizando o ponteiro e o ponteiro também pode ser alterado.\n\nint var = 10;\nint *ptr = &var;\n\nPonteiro constante para um valor constante: O conteúdo de 'var' não pode ser alterado utilizando o ponteiro e o ponteiro também não pode ser alterado.\n\nint const var = 10;\nint const *ptr = &var;\n\nIndireção Múltipla\n\nO endere\u00e7o do ponteiro pode ser obtido da seguinte forma:\n\n\t*pt_var\n\nDesse modo, um ponteiro pode armazenar o endere\u00e7o de outro ponteiro, ocasionando uma indire\u00e7\u00e3o m\u00faltipla. Para declarar um ponteiro de indire\u00e7\u00e3o m\u00faltipla utiliza-se 'o vezes e' operador, sendo N o n\u00edvel de indere\u00e7\u00e3o. No exemplo abaixo e declarado um ponteiro para ponteiro.\n\n\t*ppt = ptr2; // ponteiro do ponteiro do tipo inteiro\n\t*ppt = 10;\n\t*ppt2 = 30;\n\t*ppt1 = 50;\n\nhttp://www.embarcados.com.br/ponteiro-em-c-definicao/ Do código acima:\n\n\t*ptr2: Endereço do ponteiro 'ptr2'.\n\t*ptr: Conteúdo do ponteiro 'ptr1'.\n\t*ptr: Conteúdo do ponteiro 'val', e endere\u00e7o de 'var'.\n\t*ptr2: Endereço apontado, ou seja, o conteúdo de 'ptr1'.\n\t*ptr: Conteúdo do endere\u00e7o armazenado no ponteiro que é referenciado por 'ptr2', ou seja, 'val'.\n\nA Figura 5 ilustra as operações listadas acima.\n\nConclusão\n\nNesse artigo foi apresentado a definição geral de ponteiro e algumas características desse recurso poderoso. A capacidade de amealhar endere\u00e7os e poder manipulá-los, de forma indireta, o conteúdo de forma segura permite ao desenvolvedor aplicar C com bastante flexibilidade. Cabe ressaltar, que essa introdução outros pontos podem ser explorados: alocação dinâmica de memória, acesso de memória, abstração de funções, passagem de parâmetros por referência e técnicas de orientação do objeto. Estes temas serão explorados em outros artigos.\n\nArtigos da série \"Ponteiro em C\"\n\nPonteiro em C: Resumo\nPonteiro em C: Definição\nPonteiro em C: Aritmética de ponteiro\nPonteiro em C: Arrays\nPonteiro em C: Estruturas\nPonteiro em C: Alocação Dinâmica de Memória\nPonteiro em C: Tipo de Dado Abstrato\nPonteiro em C: Polimorfismo\n\n[Ponteiro em C: Definição por Fernando Deluno Garcia. Esta obra está sob a licença Creative Commons Atribuição-Compartilhamento 4.0 Internacional.] POSTS SEMELHANTES\n\nPonteiro em C: Resumo\nCodificação segura em para sistemas Embarcados\nPonteiro em C: Polimorfismo\n\n0 Comentários\n\nComece a discussão…