Valore iniziale variabili

di il
4 risposte

Valore iniziale variabili

Salve a tutti,

qualcuno sa spiegarmi quando devo impostare un valore iniziale alle variabili in gioco e quando non serve ?

esempio di programma creato da me...
#include <stdio.h>
main()

{
int x = 5, y = 6, z = 0, conteggio = 0, totale;

while (conteggio <= 10) {
++z;
++conteggio;
totale = x + y + z;
printf("ecco il totale %d\n", totale);
}

return 0;


}
ho praticamente capito tutto ma questa domanda me la pongo all'inizio di ogni problema e non riesco a trovare una risposta.
Nella dichiarazione delle variabili se per esempio metto conteggio e basta senza aggiungere (= 0) mi escono altri risultati e sul libro non viene spiegato oppure l'ho saltato distrattamente. Cmq non riesco a trovarlo piú.
Ogni suggerimente é ben accettato

4 Risposte

  • Re: Valore iniziale variabili

    Ogni variabile dichiarata localmente va inizializzata SEMPRE. Regola della buona programmazione.
    Questo fa si che non ci siano sorprese strane come quelle da te menzionate. Per di più il compilatore dovrebbe emmettere un warnig tipo "variable used without beeing initialized" o similare
  • Re: Valore iniziale variabili

    Praticamente tutte quelle che mi servono si dovrebbero impostare a 0 o a seconda del valore che mi serve ? Esempio
    #include <stdio.h>
    main()
    
    {
    int x = 5, y = 6, z = 0, conteggio = 0, totale = 0;
    
    while (conteggio <= 10) {
    ++z;
    ++conteggio;
    totale = x + y + z;
    printf("ecco il totale %d\n", totale);
    }
    
    return 0;
    
    
    }
    
  • Re: Valore iniziale variabili

    Bravo. Così sei sicuro che non ti capitano errori strani. Da notare che nel tuo esempio anche se non inizilizzi il totale non avresti problemi ma perche rischiare?

    Per generalizzare questo è una forma di ciò che si chiama early and late binding.
    http://gnix.blogspot.com/2007/11/early-binding-e-late-binding-in-c-pt1.html
  • Re: Valore iniziale variabili

    Grazie raga, siete sempre di grande aiuto.

    Un abbraccio da parte mia stretto stretto
Devi accedere o registrarti per scrivere nel forum
4 risposte