//esempio di funzioni con parametri passati con puntatori (by pointer) #include using namespace std; int addition (int * x, int * y); // possibile anche int addition (int *, int *); Sto dicendo al compilatore che sto passando gli argomentimediante un puntatore int main () { int z, x=3, y=5; int * xpointer, *ypointer; xpointer = &x; //& = operatore di riferimento ypointer = &y; cout << " x = " << x << ", y = " << y << endl; z= addition (xpointer,ypointer);// il prototipo avverte il compilatore che sta passando i parametri della funzione tramite i loro puntatori cout << " x = " << x << ", y = " << y << " and the sum is " << z << endl; return 0; } int addition (int * a, int * b) { int r; r = *a + *b; // * = operatore di dereferenziazione int temp = *a; *a = *b; // sto scambiando i valori puntati delle variabili x e y nella funzione main *b = temp; // cioe' sto scambiando proprio i valori delle due variabili (non di loro copie) return (r); }