Sí, eso es exactamente: el compilador toma el último valor. Ese es el operador de coma, y evalúa sus operandos de izquierda a derecha y devuelve el más a la derecha. También se resuelve de izquierda a derecha. ¿Por qué alguien escribiría un código así, no tengo ni idea :)
Entonces int b = (1, 2, 3)
es equivalente a int b = 3
. No es una lista primitiva de ningún tipo, y el operador de coma ,
se usa principalmente para evaluar varios comandos en el contexto de una expresión, como a += 5, b += 4, c += 3, d += 2, e += 1, f
, por ejemplo.
No hay lógica detrás de ese código. Es algo que haría un maestro para poner a prueba tu comprensión del operador de coma. Use la [tarea] cuando sea apropiado. –
o es un error tipográfico. Es decir (1,2,3) no es lo que el autor del código pretendía. – ddyer
posible duplicado de [¿Qué hace el operador de coma \ ', \' hacer en C?] (Http: // stackoverflow.com/questions/52550/what-does-the-comma-operator-do-in-c) –