Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180

    [C++] visibilità in un ciclo for

    dal mio libro di testo, Introduzione alla programmazione edelementi di strutture dati con il linguaggio C++, cap. 14.2.1, pag. 108

    Und dichiarazione che si trovi nell'intestazione di un for appartiene al blocco contenente l'istruzione for stessa, per cui la variabile dichiarata è visibile anche fuori dal corpo del ciclo, come nel seguente esempio:
    codice:
    main() {
        for (int i = 0; i < 4; i++) {
            /* ... */
        }
        cout << i << '\n'; //i vale 4
    }
    utilizzando devcpp ricevo un errore... allego immagine... why???
    Immagini allegate Immagini allegate
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Perchè le cose non stanno come dice il tuo libro. La variabile dichiarata nell'intestazione di un for è visibile SOLO all'interno del blocco for stesso.

  3. #3
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    Originariamente inviato da pprllo
    Perchè le cose non stanno come dice il tuo libro. La variabile dichiarata nell'intestazione di un for è visibile SOLO all'interno del blocco for stesso.
    possibile ci sia un errore così grossolano nella terza ristampa?? e possibile che il prof non ci abbia detto nulla?
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Visual C++ 6.0 compila il tuo codice.

    codice:
    #include <iostream.h>
    
    main() {
        for (int i = 0; i < 4; i++) {
            /* ... */
        }
        cout << i << '\n'; //i vale 4
    }
    l'unica cosa che dice è il warning sul mancato ritorno di un valore di main

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    Originariamente inviato da netarrow
    Visual C++ 6.0 compila il tuo codice.

    codice:
    #include <iostream.h>
    
    main() {
        for (int i = 0; i < 4; i++) {
            /* ... */
        }
        cout << i << '\n'; //i vale 4
    }
    l'unica cosa che dice è il warning sul mancato ritorno di un valore di main

    allegato
    Immagini allegate Immagini allegate
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  6. #6
    Originariamente inviato da hfish
    possibile ci sia un errore così grossolano nella terza ristampa?? e possibile che il prof non ci abbia detto nulla?
    Si, possibile, quel libro non era aggiornato allo standard C++ sino a qualche edizione fa. Forse non lo e` tuttora.

    Ad ogni buon conto, son piu` strinato del previsto o in questa frase c'e` una contraddizione?
    Una dichiarazione che si trovi nell'intestazione di un for appartiene al blocco contenente l'istruzione for stessa, per cui la variabile dichiarata è visibile anche fuori dal corpo del ciclo, come nel seguente esempio:
    Se una variabile appartiene al blocco (e credo/spero/penso voglia dire che ha scope e tempo di vita limitato a quel blocco), e` contraddittorio dire subito dopo che pertanto sara` visibile anche fuori dal blocco stesso...
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  7. #7
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    Originariamente inviato da Ikitt
    Si, possibile, quel libro non era aggiornato allo standard C++ sino a qualche edizione fa. Forse non lo e` tuttora.

    Ad ogni buon conto, son piu` strinato del previsto o in questa frase c'e` una contraddizione?


    Se una variabile appartiene al blocco (e credo/spero/penso voglia dire che ha scope e tempo di vita limitato a quel blocco), e` contraddittorio dire subito dopo che pertanto sara` visibile anche fuori dal blocco stesso...
    boh...

    a cautela ho mandato una mail al prof chiedendo spiegazioni...
    posteròla risposta...

    grazie x l'interessamento
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  8. #8
    Nello standard ANSI C++ le variabilidichiarate nel for valgono dentro il for. Questo è un dato di fatto

    Alcuni compilatori non molto conformi allo standard (tipo VC++) potrebbero compilarlo ugualmente,ma si tratta comunque di un errore
    Vinum dolce gloriosum
    pingue facit et carnosum
    Vinum forte,vinum purum
    reddit hominem securum

  9. #9
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367
    Originariamente inviato da hfish
    allegato
    per un warning in meno metti alla fine:
    codice:
    return 0;
    /* Oppure: 
    [INIZIO]
    #include <stdlib.h>
    [FINE MAIN]
    return EXIT_SUCCESS;
    che è tanto inutile quanto figo
    */
    I've got a bike. You can ride it if you like.

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Non è che semplicemente c'è un errore di stampa? Proviamo a vedere se questa frase è più coerente (e anche più esatta):
    Una dichiarazione che si trovi nell'intestazione di un for appartiene al blocco contenente l'istruzione for stessa, per cui la variabile dichiarata non è visibile anche fuori dal corpo del ciclo, come nel seguente esempio:
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.