O que é um Ponteiro?
Parte da seção Logic & Flow do Journey de C da Coddy — lição 1 de 63.
Pense na memória do seu computador como um grande edifício de apartamentos com milhares de quartos. Cada quarto possui um endereço único, e cada quarto pode armazenar uma unidade de dados. Quando você cria uma variável em C, ela é atribuída a um desses quartos.
Um ponteiro é um tipo especial de variável que não armazena dados comuns, como números ou caracteres. Em vez disso, ele armazena o endereço da localização de memória de outra variável. Pense nisso como anotar o número do apartamento de alguém em um pedaço de papel - o papel não contém a pessoa, mas diz exatamente onde encontrá-la.
int age = 25; // Isso cria uma variável 'age' na memória
int *ptr; // Isso cria um ponteiro que pode armazenar um endereçoNeste exemplo, age está armazenado em algum endereço de memória (digamos, sala 1004), e ptr é uma variável de ponteiro que poderia armazenar o endereço 1004 para "apontar para" a variável age.
Ponteiros são um dos recursos mais poderosos do C porque eles permitem que você trabalhe diretamente com endereços de memória, tornando seus programas mais eficientes e permitindo técnicas avançadas como alocação dinâmica de memória e estruturas de dados complexas.
Folha de consulta
Um ponteiro é uma variável que armazena o endereço de memória de outra variável, em vez de armazenar dados diretamente.
Para declarar um ponteiro, use o operador *:
int age = 25; // Variável comum
int *ptr; // Variável ponteiro que pode armazenar um endereçoPonteiros permitem a manipulação direta da memória e possibilitam técnicas avançadas de programação, como alocação dinâmica de memória e estruturas de dados complexas.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Fundamentos de Ponteiros
O que é um Ponteiro?Declarando PonteirosO Operador de Endereço (&)O Operador de Desreferência (*)Ponteiros NULLRecapitulação: Fundamentos de Ponteiros4Projeto: Utilitário de Texto Simples
Visão Geral do ProjetoContando Caracteres2Ponteiros e Arrays
Nomes de Arrays como PonteirosElementos de Array - PonteirosAritmética de PonteirosComparando PonteirosRecapitulação: Percorrendo Arrays com Ponteiros5Ponteiros e Funções
Passagem por ValorPassando Ponteiros para FunçõesModificando Variáveis via PonteirosUm Exemplo Clássico: SwapPassando Arrays para FunçõesRecapitulação: Ponteiros como Argumentos3Arrays de Caracteres e Strings
Strings como Arrays de charO Terminador NuloEntrada de Strings com scanfUsando strlen()Usando strcpy()Usando strcat()Usando strcmp()Recapitulação: Funções Básicas de Strings6Gerenciamento de Memória
Memória Stack vs. HeapAlocação Dinâmica - malloc()Usando sizeof() para AlocaçãoVerificando Falhas de AlocaçãoLiberando Memória com free()Alocando com calloc()Recapitulação: Array Dinâmico9Projeto: Cadastro Simples de Contatos
Projeto: Definir a Struct de ContatoFunção para Criar um Contato