Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] - Dubbio su while e print

    Si prenda questo semplice listato:

    codice:
    #include<stdio.sh>
    int main()
    {
          int a;
          while(a)
                {
                      printf("%d\n",a++);
                }
    }
    Per quale motivo a e' prima stampata e poi incremetata?

    Ottengo lo stesso risulato per

    codice:
    int a;
    int b;
    [...]
                  b=a++;
                  printf("%d\n",b);
    ma non per

    codice:
    int a;
    [...]
                 a++;
                 printf("%d\n",a);
    Grazie.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,262
    Scusa, ma ho il dubbio di non aver capito a fondo la domanda ...

    In che senso

    "Per quale motivo a e' prima stampata e poi incremetata?"

    ... proprio perche' gli dici di fare cosi'! ...

    Ovvero, nella riga

    printf("%d\n",a++);

    l'operatore di incremento ++ e', in questo caso, di postincremento (ovvero opera dopo il trattamento della variabile, in questo caso, nella printf) ...

    Se avessi voluto un preincremento, avresti dovuto scrivere

    printf("%d\n",++a);

  3. #3
    e gia'... una banalita'
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

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