Página 1 de 1

Entendendo Ponteiros e Funções em C

Enviado: 30 Out 2024, 20:05
por bernardino
Neste artigo, vamos explorar um exercício simples em C que utiliza funções e ponteiros para manipular valores. O código a seguir demonstra como usar funções para realizar operações e modificar variáveis diretamente na memória.

Código: Selecionar todos

#include <stdio.h>

int soma(int a, int b) {
    return a + b;
}

// FUNÇÃO QUE MODIFICA OS VALORES USANDO PONTEIROS
void modificaValor(int *valor1, int *valor2) {
    *valor1 = 10;
    *valor2 = 20;
}

int main() {
    int valor1 = 5;
    int valor2 = 3;
    
    int resultado = soma(5, 2); // CHAMADA DA FUNÇÃO
    printf("Resultado: %d\n", resultado);
    
    modificaValor(&valor1, &valor2); // Passa os endereços das variáveis
    printf("Valor 1: %d, Valor 2: %d\n", valor1, valor2); // Agora os valores foram alterados

    return 0;
}
Explicação do Código

1. Função soma
A primeira função, soma, recebe dois parâmetros inteiros a e b, e retorna a soma deles. Esta é uma função simples que demonstra a passagem de parâmetros por valor.

Código: Selecionar todos

int soma(int a, int b) {
    return a + b;
}
2. Função modificaValor
A função modificaValor recebe dois ponteiros para inteiros, valor1 e valor2. Ao usar ponteiros, podemos modificar os valores das variáveis que foram passadas para a função. Dentro da função, os valores apontados pelos ponteiros são alterados diretamente:

Código: Selecionar todos

void modificaValor(int *valor1, int *valor2) {
    *valor1 = 10;
    *valor2 = 20;
}
3. Função main
No main, declaramos duas variáveis inteiras, valor1 e valor2, e inicializamos com os valores 5 e 3, respectivamente.

Código: Selecionar todos

int valor1 = 5;
int valor2 = 3;
3.1 Chamada da função soma
Chamamos a função soma com os argumentos 5 e 2 e armazenamos o resultado na variável resultado. Em seguida, imprimimos o resultado:

Código: Selecionar todos

int resultado = soma(5, 2); // CHAMADA DA FUNÇÃO
printf("Resultado: %d\n", resultado);
3.2 Chamada da função modificaValor
A função modificaValor é chamada com os endereços de valor1 e valor2, usando o operador de endereço (&). Isso permite que a função altere os valores das variáveis originais.

Código: Selecionar todos

modificaValor(&valor1, &valor2); // Passa os endereços das variáveis
Após a execução da função, os valores de valor1 e valor2 são alterados para 10 e 20, respectivamente. Finalmente, imprimimos os novos valores:

Código: Selecionar todos

printf("Valor 1: %d, Valor 2: %d\n", valor1, valor2);
Conclusão
Este exercício ilustra conceitos fundamentais da linguagem C, como a passagem de parâmetros por valor e por referência (uso de ponteiros). Entender como funcionam os ponteiros é essencial para manipular dados de forma eficiente e realizar operações em funções sem copiar grandes estruturas de dados. A prática com esses conceitos ajudará a desenvolver habilidades mais avançadas em programação em C.