Las otras respuestas son correctas. La única forma de cambiar realmente una variable dentro de otra función es pasarla a través de un puntero. El ejemplo de Jeff M es el mejor, aquí.
Si en realidad no tiene por qué ser exactamente la misma variable, se puede devolver el valor de esa función, y volver a asignar a la variable, Ala:
int try(int x)
{
x = x + 1;
return x;
}
int main()
{
int x = 10;
x = try(x);
printf("%d",x);
return 0;
}
Otra opción es hacer es global (pero no hagas esto muy a menudo - ¡es extremadamente desordenado!):
int x;
void try()
{
x = 5;
}
int main()
{
x = 10;
try();
printf("%d",x);
return 0;
}
Sí, pero tiene que ser así. –
@Ronny: no necesita ser un puntero para pasarlo como uno. La dirección de cualquier variable en C++ es un puntero a esa misma variable. –
@Ronny: Estoy de acuerdo con Computer Guru. Puedes obtener un puntero a cualquier variable usando el símbolo "&". int x = 10; int * pX = & x; * pX = 5; Ahora x será igual a 5. –