Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Melhorando o exemplo de acordo com o standard

#include <stdio.h>

void calc(int c) {
    printf("calc %d %p\n", c, (void *)&c);
    c++;
    printf("calc %d %p\n", c, (void *)&c);
}

int main() {
    int c = 11;
    printf("main %d %p\n", c, (void *)&c);
    calc(c);
    printf("main %d %p\n", c, (void *)&c);
}

E

#include <stdio.h>

void calc(int* c) {
    printf("calc %d %p\n", (*c), c);
    (*c)++;
    printf("calc %d %p\n", (*c), c);
}

int main() {
    int c = 11;
    printf("main %d %p\n", c, (void *)&c);
    calc(&c);
    printf("main %d %p\n", c, (void *)&c);
}
1 resposta
solução!

Oi Breno, tudo bem?

A sua sugestão é muito válida! A segunda versão do código, utilizando ponteiros, é uma prática mais comum e alinhada com boas práticas em C. Ela oferece uma abordagem mais clara e direta para a manipulação de variáveis dentro da função calc. Ao utilizar um ponteiro para a variável c, você está passando a referência da variável, permitindo que a função modifique seu valor efetivamente.

O código revisado é uma ótima melhoria em termos de clareza e boas práticas de programação. Continuar utilizando ponteiros para passar e modificar variáveis é uma prática que facilita a leitura e manutenção do código em projetos mais complexos. Excelente iniciativa!

Um abraço e bons estudos.