Le altre risposte sono corrette. L'unico modo per cambiare veramente una variabile all'interno di un'altra funzione è passarlo tramite puntatore. L'esempio di Jeff M è il migliore, qui.
Se non hanno davvero essere che esattamente lo stesso variabile, è possibile restituire il valore da quella funzione, e ri-assegnare alla variabile, ala:
int try(int x)
{
x = x + 1;
return x;
}
int main()
{
int x = 10;
x = try(x);
printf("%d",x);
return 0;
}
Un'altra opzione è quella di fare è globale (ma non farlo molto spesso - è estremamente caotico!):
int x;
void try()
{
x = 5;
}
int main()
{
x = 10;
try();
printf("%d",x);
return 0;
}
fonte
2010-07-31 07:02:42
sì, ma deve essere. –
@Ronny: Non ha bisogno di essere un puntatore per passarlo come uno. L'indirizzo di qualsiasi variabile in C++ è un puntatore a quella stessa variabile. –
@Ronny: Accordo con Computer Guru. È possibile ottenere un puntatore a qualsiasi variabile utilizzando il simbolo "&". int x = 10; int * pX = & x; * pX = 5; Ora x sarà uguale a 5. –