¿Por qué la salida del siguiente 1 0 10?

La línea:

a, b, c = 10; 

no hace lo que crees que hace. La coma es un operador en C / C ++. Lo que esto hace es:
1. Evaluar a (basura),
2. Evaluar b (basura), y
3. Evalúe c = 10 y devuelva el valor de esta expresión, que es el valor de c (que es 10), como el valor de la expresión a, b, c = 10 .
b permanecen sin cambios y sin inicializar.
Entonces, cuando imprime estas variables, obtiene valores aleatorios (basura) para las dos primeras y 10 para c . yo obtengo
0 32767 10
como la salida

Obtendrá algunos valores, los dos primeros pueden ser cualquier cosa, el tercero será 10.

ayb tendrán los valores que el código de inicio C tenía en variables declaradas de manera similar en la función de inicio. Verá que C asigna variables locales en una pila, por lo que a menudo obtiene los valores existentes en la función llamada anteriormente. En C, la función anterior a main () suele ser un código de inicio que inicializa varias cosas, como los archivos de E / S estándar. Entonces, los valores que obtienes, 1 y 0, ¡podrían ser copias remanentes de los dos identificadores de archivos estándar! O podría ser cualquier otra cosa, depende del código de inicio.

= tiene mayor prioridad que la coma (aquí operador). Entonces a yb no tienen asignado ningún valor. Solo a c se le asigna un valor 10.

Entonces el resultado es el valor de basura, el valor de basura, 10.

Eche un vistazo: Tabla de precedencia de operadores C
Extra: Resultado del operador de coma como valor l en C y C ++ – GeeksforGeeks

Lo primero que debe saber es cómo funciona el operador de coma.

El operador de coma evalúa todas las expresiones pero devuelve el resultado de la operación más correcta.

Por ejemplo, en el código de ejemplo a continuación,

  int a = 5, b = 10, c = 2, d;
 d = (a + b, b + c, ac); 

El compilador calcula, a + b

Calcula b + c

Calcula ac y devuelve el resultado de ac que se asignará a d.
Entonces, para su ejemplo, evalúa la variable a que es basura.
Evalúa la variable b, que nuevamente es basura.
Evalúa c = 10 y asigna 10 a c.

Ahora, cuando imprime, obtiene valores de basura para a y by 10 para c.

Espero que aclare.

Ejecute el mismo programa varias veces, no necesita obtener el mismo resultado que mencionó.

Imprimirá los valores de basura ya que ayb no están inicializados y no hay datos asignados. Entonces, los dos primeros pueden ser cualquier valor de basura, mientras que el tercero será 10 con el que se asignó a c.

Creo que su intención es asignar a, b, c un valor, es decir, 10. si es así, entonces debe hacer
a = b = c = 10 en la línea 5.

Comenzando en la línea 4, declaras a = basura, b = basura, c = basura.
La expresión en la línea 5 se evalúa como 10, con el efecto secundario de que c obtiene el valor 10. Entonces tenemos a = basura, b = basura, c = 10.
La línea 6, por supuesto, nos da los valores de a y b que ahora conoceremos, junto con un 10.

More Interesting

¿Cuál es la diferencia entre informática y práctica informática?

¿Es sabio especializarse en Ingeniería Informática?

¿Qué es bueno, ingeniería informática o ingeniería mecánica? ¿Por qué?

¿Cómo comenzar con la electrónica / robótica? ¿Qué especialidad es la mejor? Ingeniería eléctrica o informática

¿Hay algún consejo para los estudiantes de primer año antes de unirse a una universidad de ingeniería?

¿Cuál es el mejor podcast técnico para programadores?

¿Qué debería preferir aprender si soy de la secuencia ECE: sistema embebido o diseño VLSI o MATLAB? ¿Cuál es digno y más utilizado hoy en día?

¿Cómo se programa el hardware de la computadora? ¿Qué lenguaje de programación utilizas si lo hay?

En la búsqueda de una carrera en seguridad de la información, ¿debería especializarme en CompSci, CompEng o InfoSys?

¿Debo cambiar mi especialidad de Ingeniería en Computación a Ciencias de la Computación y Matemática Aplicada si quiero ingresar a la IA?

Actualmente estoy en el primer año de ingeniería informática. Quiero hacer un MBA en India después de mi licenciatura. ¿Qué actividades extracurriculares debo hacer para mejorar mi currículum?

¿Debo comenzar a solicitar pasantías de verano después de 2º año de ingeniería informática?

¿Cómo se utilizan dos inversores para almacenar un bit?

2 de mis colegas y yo estamos haciendo una presentación sobre Open MP, ¿pueden decirme qué temas trataremos?

Mi computadora portátil todavía funciona con una batería cargada, sin problemas. Pero no cobrará. ¿Cómo puedo arreglar esto?