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:
- Usando o método E comercial (&)
- 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 -
- O que é uma linguagem de programação?
- C vs C ++
- Padrões em Programação C
- Melhores Compiladores C
- Guia para ponteiros em C ++
- Ponteiros em C # com exemplos