Ponteiros em c

Ponteiros em c
Ponteiros são o tópico mais importante na linguagem de programação C. Na alocação de memória, cada bloco em que quaisquer dados são armazenados é capaz de armazenar 1 byte de informação. O ponteiro é a variável que nos permite armazenar o endereço das variáveis ​​às quais queremos apontar. O valor dos ponteiros em si pode ser alterado para apontar para diferentes lugares na memória, o que é poderoso quando estamos apontando para uma matriz, porque sabemos que os elementos da matriz interna estão próximos um do outro. Então, podemos mover o ponteiro de um elemento para o próximo elemento, apenas movendo -se na memória.

Sempre que uma variável é declarada, o local da memória é automaticamente alocado a eles por padrão, que é usado para manter o valor que é atribuído a ele. O local atribuído à variável possui um endereço predefinido que só pode ser acessado usando os ponteiros.

Sintaxe
$ type *nome variável;

A sintaxe para a declaração do ponteiro é um pouco diferente de declarar uma variável porque, ao usar ponteiros, temos ambas as habilidades para acessar o endereço e o valor da variável. Na declaração de ponteiros, a palavra -chave "*" é usada, o que indica que estamos apontando para a variável "xyz". Na sintaxe dada, o tipo é o tipo de dados da variável de ponteiro que vamos definir e o "nome da variável" é a variável que deve ser apontada.

Vamos supor que criamos uma variável "var" cujo valor está localizado no endereço "3E97B57C".

Int var = 2;
Int *ptr;
ptr =&var;

Agora, definindo uma variável de ponteiro "PTR", o ponteiro é definido usando o operador de asterisco "*". A palavra técnica usada para este operador é desreferência. Para apontar para o endereço da variável que precisamos acessar, usaremos a palavra -chave amperes e “&”.

Conforme mostrado na figura a seguir, o ponteiro PTR mantém o endereço da variável "var".

Exemplo 1:
Neste exemplo, implementamos nosso ponteiro pelo qual exibiremos o endereço da variável, bem como o valor variável. Para implementar os ponteiros, primeiro incluiremos nosso arquivo de cabeçalho “Stdio.H ”e saiba que o“ stdio.H ”é um arquivo de cabeçalho que nos permite executar as operações de entrada e saída em C. Agora, mudando para nossa função principal (), usamos nossos ponteiros.

#incluir
Int main ()

int var = 10;
int *ptr;
ptr =&var;
printf (“Endereço da variável var é: %x \ n”, ptr);
printf (“Valor da variável var é: %x \ n”, *ptr);
retornar (0):

Na função Main (), primeiro declararemos uma variável chamada "var" e atribuiremos um valor de "10". Agora, "var" mantém um valor de "10". Em seguida, declararemos um ponteiro do tipo inteiro, nomeando -o "PTR". Para atribuir o endereço da variável "var" ao ponteiro, usaremos os amperes e "&". O AMPERSEnd e “&” é chamado de operador de referência usado para criar o ponteiro ou endereço das informações armazenadas em um local de memória.

Agora, o ponteiro é responsável por manter o endereço da variável "var". Na instrução PRIMF, %D indica valores decimais e %x representa que queremos que os números sejam lançados em hexadecimal, o que é um pouco mais fácil de ler. Imprimos o endereço da variável que é “3E97B57C”. Na segunda declaração de impressão, imprimimos o valor da variável "var" usando o ponteiro "PTR". Agora, como podemos ver na primeira declaração, simplesmente chamamos o "PTR" sem o asterisco "*" que nos permite imprimir o endereço da variável.

Como discutimos na introdução, os ponteiros mantêm o endereço das informações que são armazenadas na memória. Por outro lado, quando exibimos o valor da variável que é armazenada em nossa memória, chamamos o ponteiro usando o asterisco "*".

Conforme mostrado na captura de tela a seguir, podemos ver a saída de ambas as declarações de impressão. O primeiro imprime o endereço, enquanto o segundo imprime o valor de uma variável.

Exemplo 2:
No código a seguir, mudaremos o valor de uma variável usando ponteiros. Como sabemos, os ponteiros são a parte mais importante da linguagem C. Ao usá -los, podemos reduzir o tempo e a complexidade do código e nos permite lidar com os dados ilimitados.

#incluir
int main ()

int myvar = 23;
int *myptr;
myptr = &myvar;
printf ("endereço de myvar = %p \ n", myptr);
printf ("Valor de myvar = %d \ n", *myptr);
*myptr = 10;
printf ("valor atualizado do myvar usando ponteiro é %d", *myptr);

Depois de incluir os arquivos do cabeçalho, mudaremos para nossa função principal, onde inicializamos a variável chamada "Myvar", responsável por manter o valor "23". E agora, inicializar um ponteiro do tipo inteiro que é "myptr" aponta para o endereço da variável que declaramos na linha superior. Agora, em nossa próxima etapa, atribuímos o endereço da variável "myvar" que é armazenada na memória com o valor "23". Para isso, usamos as palavras -chave e "&", como discutimos no exemplo anterior de que o AMPERSAND é usado para criar o ponteiro ou endereço para a variável que é armazenada em uma memória.

Depois de atribuir o endereço ao ponteiro, chamamos a instrução printf () para imprimir o valor MyVar, bem como seu endereço. Agora, para atualizar o valor no endereço especificado da variável, usamos um ponteiro para atualizar seu valor. Para isso, chamamos o endereço do ponteiro usando asterisk "*" nome de ponteiro que é "myptr". Em seguida, atribua o valor que é "10" no nosso caso. Em seguida, imprimimos o valor passando o ponteiro atualizado para a instrução printf ().

Conforme exibido no snippet seguinte, o endereço da variável é acessado usando um ponteiro e o valor é armazenado nesse endereço. Por fim, exibimos o valor atualizado dessa variável.

Conclusão

Neste guia, discutimos brevemente sobre os ponteiros no idioma C e os métodos para implementá -los. Tentamos o nosso melhor para explicar a implementação de ponteiros e como usá -los com eficiência na linguagem C, definindo -os usando exemplos. O ponteiro é útil para reduzir o tamanho do código e também é usado para melhorar o desempenho de grandes programas. Você também pode usar ponteiros para executar as várias tarefas, como operações aritméticas, atualização de dados, etc.