Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    [C/C++] Operatore virgola

    L'uso di questo operatore mi è strano...serve per concatenare più espressioni...ma poi a che serve il fatto che il lato sinistro dell'operatore è considerato come void e il lato destro il risultato dell'espressione?

    Ho fatto il seguente esempio:
    codice:
    int main()
    {
    
      int x, y;
      y=5;
      x= (y+5, y+5) ;
      printf("%d",x);
      getch();
      return 0;
    }
    e mi visualizza 10, poichè y l'ho inizializzato a 5, poi ho assegnato a x il valore di y+5, che è la parte dell'espressione alla destra della virgola, ma se ho anche scritto alla sinistra della virgola un'altra espressione e questa poi non viene considerata, che bisogno c'è di scriverla???? a questo punto lo vedo un pò inutile questo operatore...

  2. #2
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    Re: [C/C++] Operatore virgola

    La seconda operazione viene considerata eccome, ma non rientra nel risultato...

    Se y vale 5, dopo
    x = y+5, y+5
    x vale 10 e y vale 5...

    Se y vale 5, dopo
    x = ++y, ++y
    x vale 6 e y vale 7...

    Scrivere
    x = operazione1, operazione2;
    fa si che entrambe le operazioni vengano svolte, ma il risultato totale è solo il risultato della prima operazione, quindi corrisponde a scrivere:
    x = operazione1;
    operazione2;

    Questa cosa è utile quando non puoi usare due istruzioni, ma ne puoi usare solo una.
    Ad esempio NON puoi fare:

    for (i = 0; i < 10; i++; l++); // errore

    ma puoi fare:

    for (i = 0; i < 10; i++, l++); // ok


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  3. #3
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429
    Ah ecco, adesso ho capito, grazie mille...quindi questo sarebbe un buon metodo come hai fatto tu nell'esempio, per poter incrementare più oggetti ad ogni ripetizione senza che l'incremento di questi eventuali oggetti sia effettuato all'interno del ciclo...grazie mille

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