ti consiglio di andare a vedere bene le differenze tra passaggio per valore o per riferimentocodice:#include <stdio.h> #include <stdlib.h> void scambiare(int, int, int); // qua ti eri dimenticato il punto e virgola int main() { int a=1,b=2,*c; c=&a; printf("%d",*c); scambiare(a,b,c); printf("%d%",*c); system("PAUSE"); return 0; } // se passi questi parametri alla funzione, stai copiando i valori originari in altre variabili // quindi cambia l'indirizzo void scambiare(int a,int b,int c) { if(c==&a) c=&b; else c=&a; }
Comunque il codice corretto della funzione sarebbe
Ciaocodice:// qua devi passare i parametri per riferimento void scambiare(int &a,int &b,int *&c) { if(c==&a) c=&b; else c=&a; }![]()

Rispondi quotando