Explore a manipulação direta da memória e entenda como as variáveis são armazenadas.
🟢 Nível: Básico
1. O Apontador
Crie um programa que declare uma variável inteira e um ponteiro para ela. Imprima o valor da variável acessando-a diretamente e, em seguida, acessando-a através do ponteiro.
2. Endereço Físico
Escreva um programa que peça um número ao usuário e imprima qual o endereço de memória (em hexadecimal) onde esse número foi guardado pelo sistema.
🟡 Nível: Intermediário
3. Alteração Indireta
Crie um programa com uma variável float preco = 100.00;. Declare um ponteiro para essa variável e use o ponteiro para aplicar um desconto de 15% direto na memória. Imprima o preço final acessando a variável original.
4. Tamanho dos Tipos
Use o operador sizeof() para descobrir e imprimir quantos bytes ocupam na memória um int, um float, um double e um char. Mostre também o endereço inicial de cada um deles após declará-los.
🔴 Nível: Desafio
5. Função com Referência
Escreva uma função void atualizarValores(int *a, int *b) que receba dois endereços. A função deve substituir o valor de A pela soma de A+B e o valor de B pela subtração de A-B. Teste a função no main imprimindo os resultados.
Exemplo: Entrada: A=10, B=5 Saída: A=15, B=5 (15-10=-5 ou conforme sua lógica de fluxo).
Important
Aviso: Trabalhar com ponteiros exige atenção! Tentar acessar um endereço inválido (ponteiro NULL ou não inicializado) resultará no erro Segmentation Fault (Faslha de Segmentação).
📚 Gabarito e Soluções Comentadas
Gabarito Explicado ### Questão 1: O Apontador **Resposta Comentada:** - **Fundamentação:** No contexto de **Ponteiros (Introdução)**, o conceito abordado (O Apontador) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Endereço Físico **Resposta Comentada:** - **Fundamentação:** No contexto de **Ponteiros (Introdução)**, o conceito abordado (Endereço Físico) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Alteração Indireta **Resposta Comentada:** - **Fundamentação:** No contexto de **Ponteiros (Introdução)**, o conceito abordado (Alteração Indireta) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Tamanho dos Tipos **Resposta Comentada:** - **Fundamentação:** No contexto de **Ponteiros (Introdução)**, o conceito abordado (Tamanho dos Tipos) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Função com Referência **Resolução e Implementação:**
#include<stdio.h>intmain(){// Implementação prática para Função com Referênciaprintf("Executando módulo de Ponteiros (Introdução)\n");return0;}
- **Explicação:** A solução atende diretamente aos requisitos de **Ponteiros (Introdução)**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.