Menu
Coddy logo textTech

Modificando Variáveis via Ponteiros

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 27 de 63.

Agora você pode aproveitar o verdadeiro poder dos ponteiros: modificar a variável original por meio de uma função. Quando você passa um ponteiro para uma função, a função pode usar o operador de desreferenciação para alterar o valor armazenado nesse endereço de memória.

Dentro da função, você desreferencia o ponteiro usando o operador * para acessar e modificar o valor da variável original. Essa técnica é chamada de passagem por referência porque você está passando uma referência para a localização da variável na memória.

void doubleValue(int *ptr) {
    *ptr = *ptr * 2;  // Dereference to modify the original value
}

int main() {
    int x = 5;
    doubleValue(&x);  // Passe o endereço de x
    // x agora é 10!
    return 0;
}

A chave é usar *ptr no lado esquerdo da atribuição para modificar o valor no endereço de memória que o ponteiro armazena. Isso permite que as funções alterem permanentemente variáveis da função chamadora, possibilitando recursos poderosos de programação que a passagem por valor simplesmente não consegue alcançar.

challenge icon

Desafio

Fácil

Escreva um programa em C que demonstre a modificação de variáveis por meio de ponteiros, criando uma função que triplique o valor de um inteiro.

Seu programa deve:

  1. Criar uma função chamada tripleValue que receba um ponteiro para um inteiro como parâmetro
  2. Dentro da função tripleValue, usar o operador de desreferenciação para multiplicar por 3 o valor no endereço de memória
  3. Dentro da função tripleValue, imprimir o novo valor no formato: Value tripled to: [value]
  4. Na função main, declarar uma variável inteira chamada number e inicializá-la com o valor 8
  5. Imprimir o valor original no formato: Original value: [value]
  6. Chamar a função tripleValue e passar o endereço da variável number usando o operador de endereço
  7. Após a chamada da função, imprimir o valor final de number no formato: Final value: [value]

Sua saída deve demonstrar que a função modifica com sucesso a variável original por meio do ponteiro:

Original value: 8
Value tripled to: 24
Final value: 24

Este desafio demonstra o poder da passagem por referência usando ponteiros, em que a função pode modificar permanentemente a variável original ao desreferenciar o ponteiro e alterar o valor nesse local da memória.

Experimente você mesmo

#include <stdio.h>

// TODO: Escreva sua função tripleValue aqui

int main() {
    // TODO: Escreva seu código aqui
    // Declare e inicialize a variável number
    // Print the original value
    // Chame a função tripleValue
    // Imprima o valor final
    
    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 e Fluxo

Pratique por conta própria: Compilador de C online