Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    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

  2. #2
    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.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.