Aprendendo Ponteiros em C
Os ponteiros são um dos recursos mais importantes da linguagem C. Eles permitem acessar diretamente os endereços de memória das variáveis, tornando possível modificar valores, percorrer vetores de forma eficiente e criar programas mais rápidos e flexíveis.
Embora sejam considerados um dos assuntos mais desafiadores para iniciantes, entender ponteiros é fundamental para dominar conceitos como passagem por referência, alocação dinâmica de memória, estruturas de dados e desenvolvimento de sistemas mais complexos.
Neste conteúdo, você irá praticar desde os conceitos básicos até a utilização de ponteiros em vetores e aritmética de ponteiros.
QUESTÃO 1 – Percorrendo um vetor com ponteiros
Crie um programa em C que declare o vetor abaixo:
int numeros[6] = {8, 12, 15, 21, 30, 45};
Utilize um ponteiro para percorrer o vetor e exiba todos os elementos, um por linha.
Não utilize numeros[i] dentro do printf().
Exemplo:
8
12
15
21
30
45
Resposta:
#include
int main() {
int numeros[6] = {8, 12, 15, 21, 30, 45};
int *p = numeros;
for(int i = 0; i < 6; i++) {
printf("%d\n", *p);
p++;
}
return 0;
}
QUESTÃO 2 –Soma dos elementos utilizando ponteiros
Crie um programa em C que declare o vetor:
int vendas[5] = {10, 20, 15, 18, 12};
Utilize um ponteiro para percorrer o vetor e calcular a soma de todos os elementos.
Ao final, exiba o total da soma.
Exemplo:
Total de vendas: 75
Resposta:
#include
int main() {
int vendas[5] = {10, 20, 15, 18, 12};
int *p = vendas;
int soma = 0;
for(int i = 0; i < 5; i++) {
soma = soma + *p;
p++;
}
printf("Total de vendas: %d\n", soma);
return 0;
}
Questão 3 — Encontrando o maior valor utilizando ponteiros
Crie um programa em C que declare o vetor:
int notas[7] = {65, 82, 91, 70, 88, 95, 77};
Utilize apenas um ponteiro para percorrer o vetor e encontrar a maior nota.
Exemplo:
Maior nota: 95
Resposta:
#include
int main() {
int notas[7] = {65, 82, 91, 70, 88, 95, 77};
int *p = notas;
int maior = *p;
for(int i = 1; i < 7; i++) {
p++;
if(*p > maior) {
maior = *p;
}
}
printf("Maior nota: %d\n", maior);
return 0;
}
Questão 4 — Comparando ponteiros
Crie um programa em C que declare duas variáveis inteiras:
int a = 50;
int b = 80;
Crie dois ponteiros, um apontando para a e outro apontando para b.
Mostre:
- o endereço das duas variáveis;
- o endereço armazenado em cada ponteiro;
- o valor apontado por cada ponteiro.
Exemplo:
Endereco de a: 0x61FF20
Endereco de b: 0x61FF24
Ponteiro pA: 0x61FF20
Ponteiro pB: 0x61FF24
Valor de pA: 50
Valor de pB: 80
Resposta:
#include
int main() {
int a = 50;
int b = 80;
int *pA = &a;
int *pB = &b;
printf("Endereco de a: %p\n", &a);
printf("Endereco de b: %p\n\n", &b);
printf("Ponteiro pA: %p\n", pA);
printf("Ponteiro pB: %p\n\n", pB);
printf("Valor de pA: %d\n", *pA);
printf("Valor de pB: %d\n", *pB);
return 0;
}
Questão 5 — Média das notas utilizando ponteiros
Crie um programa em C que declare o vetor:
float notas[4] = {8.5, 7.0, 9.0, 6.5};
Utilize um ponteiro para percorrer o vetor, calcular a soma das notas e exibir a média.
Exemplo:
Media: 7.75
Resposta:
#include
int main() {
float notas[4] = {8.5, 7.0, 9.0, 6.5};
float *p = notas;
float soma = 0;
for(int i = 0; i < 4; i++) {
soma = soma + *p;
p++;
}
printf("Media: %.2f\n", soma / 4);
return 0;
}
Caso o C ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.





