// Creazione di una chiamata per indirizzo #include using namespace std; void funzione(int *p); void funzione2(int &a); void funzione3(int &z , int &x) { int v = z; z = x; x = v;} //funzione inline int main () { int b =12, b2= 15; cout << " [ ByMpt-Zorobabele ] Chiamate per indirizzo \n\n "; cout << " Parte 1, usiamo la funzione che chiama \n indirettamente l'indirizzo della variabile b \n tramite i puntatori * \n" << "\n "; cout << b << " al negativo e' uguale a: "; // con la chiamata delle funzione legge l'indirizo della variabile b (&b) funzione(&b); cout << b << endl; cout << " \n Parte 2, usiamo la funzione2 che chiama \n direttamente l'indirizzo della variabile tramite & b2 \n " << "\n "; cout << b2 << " al negativo e' uguale a: "; /* con la chiamata diretta delle funzione legge l'indirizo della variabile b2 (b2), ora non serve pių tutte le chiamate al puntatore vedi differenza dentro le 2 funzioni */ funzione2(b2); cout << b2 << endl; cout << "\n confrontate le 2 chiamate e le 2 funzioni che sono diverse \n "; cout << " \n <<----------------------------------------------->>\n" << " Esempio 3 utilizzo della chiamata per indirizzo \n\n "; int l = 5 , k = 3 , p = 12 , o = 9; cout << " l e k : " << l << " e " << k << "\n "; funzione3(l , k); //non serve & cout << " l e k : " << l << " e " << k << "\n "; cout << " p e o : " << p << " e " << o << "\n "; funzione3(p , o); //non serve & cout << " p e o : " << p << " e " << o << "\n "; cout << "\n Nella funzione 3 vengono passati direttamente\n i parametri d' indirizzo tramite l'operatore( & ) cosi\n non serve utilizzare l' operatore ( * )\n \n "; cout << endl << " [ ByMpt-Zorobabele ] "; system("pause"); } void funzione(int * p) { *p = -*p; // qui si usa i puntatori } void funzione2(int & a) { a = -a; // qui non si usa pių nulla ora a č un indirizzo di // memoria }