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.
Conteúdo
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.