Argumentos por referencia mediante punteros

La función suma1 pretende sumar 1 a la variable que se le pasa como argumento, pero no lo hace correctamente. El programa debería mostrar x=4 pero muestra x=3.

Corrígelo para que funcione correctamente.


#include <stdio.h>

void suma1(int a) {
    a++;
}

int main() {
    int x=3;
    suma1(x);
    printf("x=%d\n",x);
    return 0;
}

SOLUCIÓN:


#include <stdio.h>

void suma1(int *a) {
    (*a)++;
}

int main() {
    int x=3;
    suma1(&x);
    printf("x=%d\n",x);
    return 0;
}