Recapitulação: Fundamentos de Ponteiros
Parte da seção Logic & Flow do Journey de C da Coddy — lição 6 de 63.
Desafio
FácilEscreva um programa em C que demonstre o fluxo de trabalho completo de ponteiros ao trabalhar com múltiplos tipos de dados. Seu programa deve:
- Declarar uma variável inteira chamada
agee inicializá-la com o valor 25 - Declarar uma variável de caractere chamada
gradee inicializá-la com o valor 'A' - Declarar uma variável float chamada
temperaturee inicializá-la com o valor 98.6 - Declarar três ponteiros correspondentes:
- Um ponteiro para um inteiro chamado
age_ptr - Um ponteiro para um caractere chamado
grade_ptr - Um ponteiro para um float chamado
temp_ptr
- Um ponteiro para um inteiro chamado
- Usar o operador de endereço (address-of) para atribuir os endereços das variáveis aos seus respectivos ponteiros
- Usar o operador de desreferência (dereference) para imprimir todos os três valores através de seus ponteiros no seguinte formato:
- Age: [value]
- Grade: [value]
- Temperature: [value] (com exatamente 1 casa decimal)
- Modificar as variáveis originais através de seus ponteiros:
- Alterar
agepara 30 usandoage_ptr - Alterar
gradepara 'B' usandograde_ptr - Alterar
temperaturepara 99.5 usandotemp_ptr
- Alterar
- Imprimir os valores modificados diretamente das variáveis originais (não através dos ponteiros) no mesmo formato do passo 6
Sua saída deve exibir os resultados no seguinte formato:
Age: 25
Grade: A
Temperature: 98.6
Age: 30
Grade: B
Temperature: 99.5Este desafio testa sua compreensão da declaração de ponteiros, atribuição de endereço, desreferenciamento para leitura e escrita de valores, e demonstra que os ponteiros fornecem acesso direto aos locais de memória das variáveis originais.
Experimente você mesmo
#include <stdio.h>
int main() {
// TODO: Escreva seu código aqui
// Declarar variáveis e ponteiros
// Atribuir endereços aos ponteiros
// Imprimir valores através dos ponteiros
// Modificar valores através dos ponteiros
// Imprimir valores modificados das variáveis originais
return 0;
}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