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 10O 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; // bothTamanho 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) = □
std::cout << fp(5); // 25Ponteiros 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/deleteou 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
- Ponteiros brutos e o operador de obtenção de endereço
- Desreferenciação e aritmética de ponteiros
- nullptr e segurança de ponteiros nulos
- Quando usar ponteiros versus referências