Prediga la salida de los siguientes programas en C.
Pregunta 1:
C
#include<stdio.h> int main() { enum channel {star, sony, zee}; enum symbol {hash, star}; int i = 0; for(i = star; i <= zee; i++) { printf("%d ", i); } return 0; }
Producción:
compiler error: redeclaration of enumerator 'star'
En el programa anterior, la constante de enumeración ‘estrella’ aparece dos veces en main(), lo que provoca el error. Una constante de enumeración debe ser única dentro del ámbito en el que se define. El siguiente programa funciona bien e imprime 0 1 2 ya que las constantes de enumeración obtienen automáticamente los valores a partir de 0.
C
#include<stdio.h> int main() { enum channel {star, sony, zee}; int i = 0; for(i = star; i <= zee; i++) { printf("%d ", i); } return 0; }
Producción:
0 1 2
Pregunta 2:
C
#include<stdio.h> int main() { int i, j; int p = 0, q = 2; for(i = 0, j = 0; i < p, j < q; i++, j++) { printf("GeeksforGeeks\n"); } return 0; }
Producción:
GeeksforGeeks GeeksforGeeks
La siguiente es la expresión principal a considerar en el programa anterior.
C
i < p, j < q
Cuando dos expresiones están separadas por comas, la primera expresión (i < p) se ejecuta primero. El resultado de la primera expresión se ignora. Luego se ejecuta la segunda expresión (j < q) y el resultado de esta segunda expresión es el resultado final de la expresión completa (i < p, j < q). El valor de la expresión ‘j < q’ es verdadero para dos iteraciones, por lo que obtenemos «GeeksforGeeks» dos veces en la pantalla. Vea esto para más detalles.
Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA