C Language Operatore di virgola


Esempio

Valuta il suo operando di sinistra, scarta il valore risultante e quindi valuta l'operando dei diritti e il risultato restituisce il valore dell'operando più a destra.

int x = 42, y = 42;
printf("%i\n", (x *= 2, y)); /* Outputs "42". */

L'operatore virgola introduce un punto di sequenza tra i suoi operandi.

Si noti che la virgola utilizzata nelle funzioni chiama che gli argomenti separati NON è l' operatore virgola , piuttosto è chiamato un separatore che è diverso dall'operatore virgola . Quindi, non ha le proprietà dell'operatore virgola .

La precedente chiamata printf() contiene sia l' operatore virgola che il separatore .

printf("%i\n", (x *= 2, y)); /* Outputs "42". */
/*           ^        ^ this is a comma operator */
/*           this is a separator */

L'operatore virgola viene spesso utilizzato nella sezione di inizializzazione e nella sezione di aggiornamento di un ciclo for . Per esempio:

for(k = 1; k < 10; printf("\%d\\n", k), k += 2);   /*outputs the odd numbers below 9/*

/* outputs sum to first 9 natural numbers */
for(sumk = 1, k = 1; k < 10; k++, sumk += k)
    printf("\%5d\%5d\\n", k, sumk);