Spiegazione output programma

di il
5 risposte

Spiegazione output programma

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

5 Risposte

  • Re: Spiegazione output programma

    Le domande non devono essere così generiche ... cosa non capisci in particolare?

    Conosci il concetto di variabile locale?
  • Re: Spiegazione output programma

    La prima cosa da tenere in mente con questo tipo di esercizi è il concetto di di una variabile.
  • Re: Spiegazione output programma

    C'è solo una cosa da comprendere da quel frammento di codice: che è un abominio. Non fatelo a casa.
  • Re: Spiegazione output programma

    E perché mai sarebbe un abominio? E' un semplice esercizio fornito da un docente per far riflettere un allievo ...
  • Re: Spiegazione output programma

    Concordo con oregon.
    Questi sono gli esercizi più utili per capire come funziona la visibilità di una variabile all'interno del codice.
Devi accedere o registrarti per scrivere nel forum
5 risposte