Salve ragazzi visto che sono alle prime armi con la programmazione in C mi potreste dare una mano ad interpretare l'output di questo codice?
#include <stdio.h>
#include <stdlib.h>
void a(void);
int b(int);
int x = 3;
int main()
{
int x = 4;
if (x == 4)
x = b(x);
a();
printf("%d\n", x);
x += b(x);
printf("%d\n", x);
system("PAUSE");
return 0;
}
void a(void)
{
int x = 22;
--x;
printf("%d\n", x);
x -= b(x);
printf("%d\n", x);
}
int b (int y)
{
return x+y;
}
Da quel che ho capito è un programma con un main e 2 funzioni nel quale una stessa variabile x viene dapprima dichiarata globalmente (prima del main), poi localmente nel main e poi di nuovo localmente nella prima delle 2 funzioni. Nella seconda funzione invece viene usata quella globale. Però poi nel main vengono richiamate sia la prima che la seconda funzione e nella prima funzione viene richiamata la seconda. Quindi questa x assume 7-8 valori diversi man mano che il programma viene eseguito... Se potete darmi delle spiegazioni più approfondite vi sarei grato