Introdução aos ponteiros em C

Em C ou outras linguagens de programação, temos um conceito de variável. Essas variáveis ​​são usadas para armazenar valores. É possível usar essas variáveis ​​durante a programação. No entanto, existem poucas tarefas que não exigem variáveis, mas requerem o endereço dessas variáveis. O endereço das variáveis ​​significa a localização real da memória onde essas variáveis ​​existem. Neste tópico, vamos aprender sobre ponteiros em C. Podemos definir ponteiro como um tipo de variável que contém o endereço de qualquer outra variável que possa estar mantendo algum valor

Usos de ponteiros em linguagens de programação e C

Agora, vamos discutir o assunto em que C, na verdade, precisamos de um ponteiro. Existem muitas tarefas, como alocação dinâmica de memória, que requer ponteiros durante a programação em C. Usando ponteiros, essa tarefa pode ser feita facilmente

Maneiras diferentes de acessar o endereço variável em C

Vamos tentar saber quais são as diferentes maneiras pelas quais podemos imprimir o endereço de uma variável em C.

Existem duas maneiras pelas quais podemos realmente imprimir o endereço de uma variável. Esses dois métodos são:

  1. Usando o método E comercial (&)
  2. Usando o ponteiro

Vamos analisar cada método com um exemplo

1. Usando o método E comercial (&)

Neste método, usaremos o conceito de e comercial para imprimir o endereço de uma variável

Vejamos isso com um exemplo

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Agora, copie o trecho de código acima e execute-o

Ele mostrará a seguinte saída:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Embora, seja possível ver o valor diferente atribuído aleatoriamente ao executar o exemplo

O exemplo acima mencionado não é muito usado, mas vale a pena conhecer. Agora, vamos olhar para o outro conceito que estamos discutindo neste tópico.

2. Usando o ponteiro

Essa é uma abordagem moderna para acessar o endereço de uma variável. Antes de usar o ponteiro, deixe-nos saber a sintaxe geral de declarar um ponteiro

  • A sintaxe geral de declarar um ponteiro - Uma sintaxe comum que usamos para declarar uma variável é:

data_type *variable

Essa é uma maneira comum de declarar qualquer ponteiro em C, aqui data_type representa o tipo da variável cujo endereço precisa ser armazenado. * indica que a variável declarada é um ponteiro. uma variável é simplesmente usada para acessar o valor

Um exemplo simples disso é:

double *var_text

Depois de discutir o conceito de sintaxe geral de declarar um ponteiro , deixe-nos saber como podemos usar um ponteiro na programação

Para usar um ponteiro em C, basicamente é necessário seguir as três etapas a seguir:

  • Definição da variável do ponteiro
  • Atribuindo o endereço da variável cujo endereço queremos manter na variável ponteiro
  • Agora, quando tivermos uma variável de ponteiro com o endereço, podemos recuperar novamente o valor da variável do endereço armazenado no ponteiro. Isso pode ser feito usando * em C. * é simplesmente um dos operadores unários

Vamos usar as etapas acima mencionadas com um exemplo e depois explicaremos este exemplo passo a passo

Exemplo

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Agora, copie o trecho de código acima e execute-o

Ele mostrará a seguinte saída:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Agora, vamos tentar entender o exemplo acima

A linha int varNumValue = 10; simplesmente declara uma variável com valor 10

A segunda linha que está próxima a ela: int * ipointervarNumValue; é simplesmente declarado para armazenar o endereço da variável

O próximo trecho de código que é: ipointervarNumValue = & varNumValue; é usado para armazenar o endereço da variável. Aqui, estamos usando o conceito de "e comercial", que discutimos anteriormente no artigo

Agora, podemos simplesmente obter o valor e usar um ponteiro no nosso snippet de código

Agora, vejamos os diferentes tipos de ponteiros em C

Tipos de ponteiro em C

Existem diferentes tipos de ponteiro em C. Os tipos básicos de ponteiro geralmente usados ​​são:

  • Ponteiro nulo
  • Ponteiro oscilante
  • Ponteiros genéricos
  • Ponteiro Selvagem

Vamos explicar cada

1. Ponteiro nulo: Um ponteiro nulo é um tipo de ponteiro que não aponta para nada. Geralmente aponta para o endereço base do segmento. Caso nada seja atribuído ao ponteiro, ele terá um valor nulo

Geralmente é usado em arquivos de cabeçalho como stdio.h, assign.h

2. Ponteiro Dangler: Este tipo de ponteiro pode ser criado excluindo o objeto sem modificar o valor do ponteiro

3. Ponteiro genérico: este tipo de ponteiro é declarado usando uma variável do tipo void. Como é do tipo de dados nulos, é chamado de ponteiro genérico. Esse tipo de ponteiro não aponta para nenhum dado

4. Ponteiro curinga: Um ponteiro que não foi inicializado é conhecido como ponteiro curinga. Esse tipo de ponteiro é inicializado durante o tempo de execução, quando é necessário usá-lo. Esse tipo de ponteiro é conhecido como ponteiro selvagem

Conclusão

Ponteiros em C são usados ​​para apontar para o endereço da variável. Essas variáveis ​​são usadas para a alocação dinâmica de memória em C. Essas variáveis ​​são declaradas com um asterisco para mostrar que a variável é um ponteiro. Eles são usados ​​no arquivo de cabeçalho na programação.

Artigos recomendados

Este é um guia para ponteiros em C. Aqui discutimos os diferentes tipos e usos de ponteiros em C com métodos e exemplos. Você também pode consultar os seguintes artigos para saber mais -

  1. O que é uma linguagem de programação?
  2. C vs C ++
  3. Padrões em Programação C
  4. Melhores Compiladores C
  5. Guia para ponteiros em C ++
  6. Ponteiros em C # com exemplos