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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *