Raga, stavo studiando le funzioni...
Semplice programma: passaggio per valore.
#include <iostream>
using namespace std;
int funzione (int a, int b)
{
int c = a + b;
return c;
}
int main ()
{
int x, y, somma;
cout << "Quali numeri vuoi sommare?" << endl;
cin >> x >> y;
somma = funzione (x, y);
cout << "La somma vale: " << somma;
return 0;
}
Nella funzione che dichiaro devo inserire il tipo + nome di ogni variabile (int a, int b) poi la richiamo nel main e in "corrispondenza" ci infilo le variabili già inserite del main (x,y)...
Passaggio per indirizzo è invece:
#include <iostream>
using namespace std;
int funzione (int *a, int *b)
{
int c = *a + *b;
return c;
}
int main ()
{
int x, y, somma;
cout << "Quali numeri vuoi sommare?" << endl;
cin >> x >> y;
somma = funzione (&x, &y);
cout << "La somma vale: " << somma;
return 0;
}
Quando inserisco tipo+variabile nella funzione ho bisogno di usare * prima del nome della variabile, nel main quando infilo le variabili devo inserire &.
Sostanzialmente succede la stessa cosa...
Mi sapreste spiegare meglio? Come mai dovrei preferire una, rispetto l'altra?
Grazie...