Conceitos básicos de ponteiros em c programação

Memorizar esta frase: Um ponteiro é uma variável que contém um local de memória.

Você deve aceitar a insanidade do ponteiro antes de prosseguir. É verdade, embora você pode obter em uma variável&rsquo-s local de memória, ou endereço, usando o & operador, o ponteiro é uma besta muito mais poderoso.

Um ponteiro é um tipo de variável. Como outras variáveis, deve ser declarado no código. Além disso, ele deve ser inicializado antes que&rsquo-s utilizados. Essa última parte é muito importante, mas primeiro a declaração tem o seguinte formato:

Digite o nome-

Como quando você declarar qualquer variável, a tipo identifica o ponteiro como um char, int, flutuador, e assim por diante. o nome é a variável de ponteiro&rsquo-s nome, que deve ser único, assim como qualquer outro nome de variável. O asterisco identifica a variável como um ponteiro, não como uma variável regular.

A linha seguinte declara um ponteiro char, sócio:

char * sidekick-

E esta linha cria um ponteiro duplo:

Video: Curso de Programação em C/C++ - Aula 16 - Ponteiros

duplo arco-íris-

Para inicializar um ponteiro, você deve definir o seu valor, assim como qualquer outra variável. A grande diferença é que um ponteiro é inicializado para o local de memória. Que isn localização&rsquo-t um ponto aleatório na memória, mas sim o endereço de outra variável dentro do programa. Por exemplo:

sidekick = &conduzir-

A instrução anterior inicializa o sócio variável para o endereço do conduzir variável. Ambas as variáveis ​​são tipos-de char se não, o compilador rosnava como um gato molhado. Depois que a declaração é executado, o sócio ponteiro contém o endereço do conduzir variável.

Se vocês&rsquo-re lendo este texto e apenas balançando a cabeça sem entender nada, que bom! Isso significa que ele&tempo rsquo-s por um exemplo.

O código-fonte num exemplo inclui comentários para ajudar a descrever duas linhas cruciais. O programa realmente doesn&rsquo-t fazer nada além de provar que o ponteiro sócio contém o endereço ou localização de memória, de variável conduzir.

UM EXEMPLO


#include int main () {lead-char char * ajudante-chumbo = `A`- / * inicializar variável char * / = ajudante &chumbo / * inicializar ponteiro IMPORTANTE! * / Printf ("Sobre `chumbo` variável: n") -printf ("Sizett% ldn", Sizeof (chumbo)) - printf ("Contentst% cn", Chumbo) -printf ("Locationt% pn",&chumbo) -printf ("E `sidekick` variável: n") -printf ("Contentst% pn", Sidekick) -Retornar (0) -}

Outras coisas a nota: Linha 12 usa duas sequências guia de escape para alinhar a saída. Além disso, don&rsquo-t esquecer o & na linha 14, que vai buscar a variável&rsquo-s endereço.

Exercício 1: Digite o código-fonte de um exemplo em seu editor. Construir e executar.

Aqui&rsquo-s a saída:

Sobre `chumbo` variável: Tamanho 1Contents alocação 0x7fff5fbff8ffAnd variável `sidekick`: Índice 0x7fff5fbff8ff

Os endereços (no exemplo) são únicos para cada sistema, mas a principal coisa a notar é que o conteúdo do ponteiro sócio são iguais ao local de memória da variável conduzir. que&rsquo-s por causa da atribuição, ou inicialização, que tem lugar na linha 9 no código.

Seria inútil para um ponteiro para apenas conter um endereço de memória. O ponteiro também pode espreitar para esse endereço e determinar o valor que&rsquo-s armazenados lá. Para que isso aconteça, o operador * é prefixado para o ponteiro&rsquo-s nome da variável.

Exercício 2: Modificar seu código-fonte do Exercício 1, adicionando a seguinte declaração após Linha 16:

printf ("Peek valuet% cn"* Sidekick) -

Construir e executar. Aqui&rsquo-s a saída:

Video: Programação - Ponteiros em C (exercício 1)

Sobre `chumbo` variável: Tamanho 1Contents alocação 0x7fff5fbff8ffAnd variável `sidekick`: Índice 0x7fff5fbff8ffPeek o valor de uma

Quando você especificar o * (asterisco) antes de uma variável ponteiro inicializado&rsquo-s nome, os resultados são o conteúdo do endereço. O valor é interpretado com base no tipo de ponteiro. Neste exemplo, * sidekick representa o valor de char armazenado em um local de memória mantida no sócio variável, que é realmente o mesmo que a variável local de memória conduzir.

Para colocar de outra forma:

  • Uma variável ponteiro contém um local de memória.

  • o * ponteiro espreita variável para o valor armazenado no local de memória.


Publicações relacionadas