Menu
CoddyTech

O Operador de Endereço (&)

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

Agora que você sabe declarar ponteiros, precisa aprender a armazenar de fato um endereço de memória neles. O operador de endereço (&) é a chave para obter o endereço de memória de qualquer variável.

Quando você coloca o operador & antes do nome de uma variável, ele retorna o endereço de memória onde essa variável está armazenada. Pense nisso como perguntar: “Onde essa variável está localizada na memória?”

int age = 25;
int *ptr;
ptr = &age;    // Armazena o endereço de 'age' em 'ptr'

Neste exemplo, &age nos fornece o endereço de memória da variável age. Em seguida, atribuímos esse endereço ao nosso ponteiro ptr. Agora, ptr "aponta para" a variável age.

O operador de endereço é essencial porque é a ponte entre variáveis comuns e ponteiros. Sem ele, você não poderia indicar a um ponteiro para qual variável apontar. Lembre-se de que os tipos de dados devem corresponder — você só pode atribuir o endereço de um inteiro a um ponteiro declarado para inteiros.

challenge icon

Desafio

Fácil

Escreva um programa em C que demonstre o uso do operador de endereço para conectar variáveis a ponteiros. Seu programa deve:

  1. Declarar uma variável inteira chamada number e inicializá-la com o valor 42
  2. Declarar uma variável de caractere chamada letter e inicializá-la com o valor 'X'
  3. Declarar um ponteiro para um inteiro chamado num_ptr
  4. Declarar um ponteiro para um caractere chamado char_ptr
  5. Usar o operador de endereço para atribuir o endereço de number a num_ptr
  6. Usar o operador de endereço para atribuir o endereço de letter a char_ptr
  7. Imprimir os endereços armazenados em ambos os ponteiros usando printf com o especificador de formato %p

Sua saída deve exibir os endereços dos ponteiros no seguinte formato:

Address of number: [address]
Address of letter: [address]

Os endereços reais de memória variarão entre as execuções do programa, mas o formato e os rótulos devem corresponder exatamente ao mostrado acima. [address] é um marcador de posição para o endereço impresso: não imprima os colchetes.

REQUIRED OUTPUT FORMAT: [Your translated content here]

Experimente você mesmo

#include <stdio.h>

int main() {
    // TODO: Escreva seu código aqui
    // 1. Declare e inicialize as variáveis
    // 2. Declare os ponteiros
    // 3. Use o operador de endereço para atribuir os endereços
    // 4. Imprima os endereços usando o formato mostrado
    
    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