Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    3

    Chiarimenti su un esercizio C++ facile facile

    Allora io ho scannerizzato la mia lezione di c++ lezione chiamata "operatore ++" qui la foto del immagine scannerizzata: https://onedrive.live.com/?id=A01460...d=root&o=OneUp
    il problema mio e che il libro afferma che scrivere (i++) e (++i) con la parentesi e la stessa cosa ma io provando i due commandi sul compilatore da risultati diversi. Qualcuno puo darmi dei chiarimenti grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quali risultati? In quale contesto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    E' abbastanza semplice:
    i++ PRIMA esegue l'istruzione e DOPO incrementa
    ++i PRIMA incrementa e DOPO esegue l'istruzione.

    Ti faccio un esempio:
    codice:
    int i=0;
    cout<< i++; // prima stampa e poi incrementa
    cout<<i;
    Questo codice stampa:
    0
    1

    ora proviamo ad utilizzare l'altro operatore:
    codice:
    int i=0;
    cout<< ++i; // prima incrementa e poi stampa
    cout<<i;
    Questo codice stampa:
    1
    1

    Se invece utilizziamo questi operatori come istruzioni a sè stanti, e non all'interno di altre istruzioni, allora hanno lo stesso comportamento, quindi scrivere:
    i++;
    e
    ++i;
    è la medesima cosa.

    Spero che adesso ti sia chiaro
    Ultima modifica di MItaly; 21-09-2015 a 08:53

  4. #4
    Quote Originariamente inviata da crissstian96 Visualizza il messaggio
    i++ PRIMA esegue l'istruzione e DOPO incrementa
    ++i PRIMA incrementa e DOPO esegue l'istruzione.
    Occhio, un operatore non "esegue l'istruzione" cout<<, piuttosto i++ incrementa i e restituisce il valore di i prima dell'incremento, mentre ++i incrementa i e restituisce il valore già incrementato. In ogni caso, la pagina linkata non è visibile, per cui non ti saprei dire cosa intendesse il libro, ma ovviamente i due operatori differiscono solo nel valore restituito, sono equivalenti solo se usati a sé stanti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Infatti ... avevo chiesto il "contesto" della domanda ma, fino ad ora, l'utente che ha creato il thread non si è fatto vedere .... avrà risolto mentre noi tentiamo di fare mille ipotesi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    3
    Salve non ho risposto alla domanda perche ero impegnato in fatti personali.
    Io ho questo file sorgente scritto da me che in fondo e* una copia del file sorgente del libro.

    codice:
    #include<iostream>
    using namespace std;
    int main(){
    int i=5;
    int x=3;
    int y;
    y = x + (++i);
    cout << y ;
    cout << i;
    y=0;
    i=5;
    y = x + (i++);
    cout << y ;
    cout << i;
    }

    Quando lo eseguo pero ho due risultati diversi la prima coppia mi stampa 9 , 6
    invece la seconda 8 , 6 .
    Eppure il libro afferma:" Si deve anche notare che l'istruzione y = x + (++i) e equivalente alla seguente: y = x + (i++).
    Che puo essere che sono io che faccio confusione non capendo i significati del libro?
    Vi dico che a volte trovo difficile capire i testi pure a volte i vostri commenti mi appaiono complicati.
    Ho visto pero che usando il dizionario e studiando la grammatica italiana certi significati mi vengono fuori e sopratutto analizzando la frase con calma ma non posso pero sempre usare questo metodo .
    Se per ogni frase devo cercare il significato della parola e il uso grammaticale nella frase ci metto una vita !. Voi come fatte ?
    Sapete qualche testo o libro che potrei leggere che mi aiuti.
    Cmq questa e* la pagina del libro: http://it.tinypic.com/view.php?pic=2...8#.VgFGJ7OPc6I
    Grazie dell aiuto
    Ultima modifica di LeleFT; 22-09-2015 a 15:10 Motivo: Aggiunti i tag CODE

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    3
    comunque il contesto e per studio personale...

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.