Sì, è esattamente così: il compilatore prende l'ultimo valore. Questo è l'operatore virgola, e valuta i suoi operandi da sinistra a destra e restituisce quello più a destra. Risolve anche da sinistra a destra. Perché qualcuno dovrebbe scrivere un codice del genere, non ne ho idea :)
Quindi int b = (1, 2, 3)
è equivalente a int b = 3
. Non è un elenco primitivo di alcun tipo e l'operatore virgola ,
viene utilizzato principalmente per valutare più comandi nel contesto di un'espressione, ad esempio a += 5, b += 4, c += 3, d += 2, e += 1, f
.
Non c'è alcuna logica dietro quel codice. È qualcosa che un insegnante potrebbe inventare per testare la tua comprensione dell'operatore virgola. Usa i [compiti a casa] quando appropriato. –
o è un errore di battitura. Vale a dire (1,2,3) non è ciò che l'autore del codice intendeva. – ddyer
possibile duplicato di [Cosa fa l'operatore virgola \ ', \' do in C?] (Http: // stackoverflow.it/questions/52550/what-does-the-comma-operator-do-in-c) –