Menu
Coddy logo textTech

Operador de Desreferenciação

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 3 de 56.

Agora que você já pode obter um pointer para uma variable, você precisa aprender como acessar e modificar o valor naquele endereço de memória. É aqui que o operador dereference (*) becomes essencial.O operador dereference * é usado para acessar o valor armazenado no address de memória para o qual um pointer está pointing. Quando você coloca * antes de uma variable de pointer, ele "segue" o address e fornece o valor real armazenado lá.Lembre-se de que o operador de endereço (&) é usado para obter o endereço de memória de uma variável, enquanto o operador de desreferenciação (*) é usado para acessar o valor nesse endereço.
int number = 42;
int* ptr = &number;  // ptr armazena o endereço de number
int value = *ptr;    // value agora contém 42
Você também pode usar o operador de desreferenciação (dereference) para modificar a variável original através do pointer. Quando você atribui um novo valor a *ptr, você está na verdade alterando o valor armazenado naquela localização de memória:
*ptr = 100;  // Altera number para 100
// number agora é 100, mesmo que o tenhamos modificado através de ptr
Esse acesso indireto é o que torna os ponteiros tão poderosos — você pode ler e modificar variáveis de qualquer lugar do seu programa, desde que tenha um ponteiro para elas.
challenge icon

Desafio

Fácil

Crie um programa que demonstre o operador de desreferenciação (dereference) modificando o valor de uma variável por meio de um ponteiro.

A seguinte entrada será fornecida:

  • Um número inteiro representando o valor inicial para uma variável
  • Um número inteiro representando o novo valor a ser atribuído através do ponteiro

Seu programa deve:

  1. Declarar uma variável do tipo inteiro chamada temperature e inicializá-la com o primeiro valor de entrada
  2. Criar um ponteiro chamado tempPtr que aponta para a variável temperature
  3. Imprimir o valor original desreferenciando o ponteiro
  4. Usar o operador de desreferenciação para alterar o valor de temperature para o segundo valor de entrada através do ponteiro
  5. Imprimir o novo valor desreferenciando o ponteiro novamente

Use o seguinte formato exato para a saída:

Original value: [original value]
New value: [new value]

Experimente você mesmo

#include <iostream>
using namespace std;

int main() {
    // Ler valores de entrada
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: Escreva seu código abaixo
    // 1. Declare a variável temperature e inicialize com initialValue
    // 2. Crie o ponteiro tempPtr apontando para temperature
    // 3. Print original value using pointer dereference
    // 4. Altere o valor de temperature através do ponteiro usando newValue
    // 5. Imprima o novo valor usando desreferência do ponteiro
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo