Declaración de cambio de lenguaje C

El caso 2 se ejecuta porque x=1 en el interruptor (x), por lo que se ejecuta el caso 1. Sin embargo, la declaración en el caso 1 no se interrumpe, por lo que el interruptor (x) continuará ejecutando las declaraciones del caso en secuencia después de ejecutar el caso 1 hasta que encuentre una interrupción y salte del bucle del interruptor.

Para "La autoadición de A se ejecuta primero y luego se agrega, no se ejecutan otras declaraciones al agregar este programa A", no puede ver las declaraciones a++ y b++ en el programa. Después de la suma, los valores todavía se asignan a A y B, en lugar de a otras variables como c = a++; Los valores de cyz serán los mismos que en el libro de texto. En otras palabras, la salida printf final de este programa es el valor de A y B, pero los valores de A y B han cambiado durante el proceso de autoadición, lo que equivale a las declaraciones A = a++ y B = B++ .

Cambié tu programa. Puede ejecutar los dos programas y compararlos, y comprenderá por qué los valores de A y B son 2 y 1 al final. El procedimiento es el siguiente.

# incluir & ltstdio.h & gt

main()

{

int x=1, y=0, a =0, b=0, c=0, z = 0;

Interruptor (x)

{Caso 1:

Interruptor (y)

{

Caso 0: c = a++;

Caso 1: b++; >Caso 2: c=a++, z = b++; roto;

Caso 3: a++, b++;

}

printf("c=%d ,z=%d\n ",c,z);

}

¿Cuál es la diferencia entre ++i e i++?

En pocas palabras: ++i agrega los valores almacenados en I y "devuelve" el nuevo valor agregado a la expresión que lo usa, mientras que i++ agrega 1 a I, pero no aumenta el valor; valor original.