Hay dos maneras de pasar parámetros a una función:
1. Por Valor: aqui lo único que hacemos es pasar los valores de las variables, es decir que así las modifiquemos el valor de ellas dentro de la función este no cambia el valor original de la variable, sino solo a nivel local es decir mientra permanezcamos dentro de la función, ejemplo:
Código C++:
Ver originalvoid main()
{
int a=1,b=2,c=3;
escribir(a,b,c);
printf("%d",a
); //te darás cuenta que el cambio que le dimos dentro la //función no surte efecto al valor original
}
void escribir(int a,int b,int c)
{
a=4;
printf("%d\n",a
); //cambia el valor de a pero solo a nivel local //es decir dentro de la función ya que la variable a
//en este momento es considerada variable local de
//la función escribir
}
2. Por Referencia: aquí en cambio se pasa la referencia a memoria de la variable enviada como parámetro, es decir, que sin modificamos su valor dentro de la función llamada modificamos el valor de la variable pasa como parámetro. y es el ejemplo de tu función leer, ejemplo:
Código C++:
Ver originalvoid main()
{
int a=1,b=2,c=3;
printf("%d",a
); //Valor de a = 1
leer(&a,&b,&c); //usamos los & para indicarle la referencia a memoria de
// la variable, es decir que le estamos enviando parámetros por
//referencia
printf("%d",a
); //Valor de a ingresado dentro de la función escribir }
void leer(int *a,int *b,int *c) //de igual manera con el * le indicamos que lo
{ //que vamos a recibir es una referencia a
scanf("%d\n",a
); //memoria del parámetro recibido }