0Pricing
C++ Academy · Aula

Ponteiros brutos e o operador de obtenção de endereço

Declare ponteiros, obtenha endereços com & e compreenda os tipos de ponteiro

Ponteiros brutos e o operador de obtenção de endereço é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

O que é um ponteiro

Um ponteiro armazena o endereço de outro objeto. É uma variável cujo valor é uma localização na memória.

Declaração de um ponteiro

O tipo de ponteiro é T*. Por convenção, coloque o * junto ao tipo.

int x = 10;
int* p = &x;          // p holds the address of x
std::cout << p;        // prints an address
std::cout << *p;       // prints 10

O operador de obtenção do endereço

O operador unário & obtém o endereço de uma variável. O tipo do resultado é T*.

int x = 42;
int* p = &x;

O operador de desreferenciação

O operador unário * lê ou grava o objeto para o qual um ponteiro aponta.

*p = 100;
std::cout << x;   // 100  (x changed through p)

Ponteiros nulos

Um ponteiro que não aponta para lugar algum deve receber nullptr. Desreferenciá-lo é um comportamento indefinido.

int* p = nullptr;
if (p == nullptr) {
    std::cout << "no target\n";
}

Ponteiros são números internamente

Um endereço é apenas um número inteiro (frequentemente de 64 bits). O tipo do ponteiro informa ao compilador como interpretar os bytes nesse endereço.

Ponteiro para const versus ponteiro const

Duas posições independentes para const:

int x = 1, y = 2;
const int* p1 = &x;     // pointer to const int (cannot modify *p1)
int* const p2 = &x;     // const pointer to int (cannot reseat)
const int* const p3 = &x; // both

Tamanho dos ponteiros

Todos os ponteiros têm o mesmo tamanho em uma determinada plataforma — normalmente 8 bytes em sistemas de 64 bits. Até mesmo um char* tem 64 bits de largura.

Ponteiros para funções

É possível obter o endereço de uma função e chamá-la por meio do ponteiro.

int square(int x) { return x * x; }

int (*fp)(int) = &square;
std::cout << fp(5);   // 25

Ponteiros para membros

Existe uma sintaxe especial para ponteiros para membros de classes. É algo raro no código moderno — a maioria das funções de retorno de chamada usa std::function ou lambdas.

Por que os ponteiros são importantes

Os ponteiros são fundamentais para:

  • Memória dinâmica (new/delete ou ponteiros inteligentes)
  • Referências opcionais (que podem ser nulas)
  • Polimorfismo (despacho virtual por meio de ponteiros para classes base)
  • Interoperabilidade com APIs C

Verificação rápida

A que a expressão &x é avaliada?

Recapitulação

Um ponteiro armazena um endereço. Use & para obter um endereço e * para ler ou escrever no alvo. nullptr é o valor nulo seguro. Os ponteiros são fundamentais para memória dinâmica, referências opcionais e polimorfismo.

Perguntas Frequentes

A aula “Ponteiros brutos e o operador de obtenção de endereço” é grátis?

Sim — o texto completo de “Ponteiros brutos e o operador de obtenção de endereço” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Ponteiros brutos e o operador de obtenção de endereço”?

Declare ponteiros, obtenha endereços com & e compreenda os tipos de ponteiro Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Ponteiros brutos e o operador de obtenção de endereço”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ponteiros brutos e o operador de obtenção de endereço
  2. Desreferenciação e aritmética de ponteiros
  3. nullptr e segurança de ponteiros nulos
  4. Quando usar ponteiros versus referências
← Voltar para C++ Academy