Prediga las salidas de los siguientes programas en C.
Pregunta 1
int main() { int x = 10; static int y = x; if(x == y) printf("Equal"); else if(x > y) printf("Greater"); else printf("Less"); getchar(); return 0; }
Salida: Error del compilador
En C, las variables estáticas solo se pueden inicializar usando literales constantes. Vea este GFact para más detalles.
Pregunta 2
#include <stdio.h> int main() { int i; for (i = 1; i != 10; i += 2) { printf(" GeeksforGeeks "); } getchar(); return 0; }
Salida: Tiempos infinitos GeeksforGeeks
La condición de terminación del ciclo nunca se vuelve verdadera y el ciclo imprime GeeksforGeeks infinitas veces. En general, si una instrucción for o while usa un contador de bucle, entonces es más seguro usar un operador relacional (como <) para terminar el bucle que usar un operador de desigualdad (operador !=). Vea esto para más detalles.
Pregunta 3
#include<stdio.h> struct st { int x; struct st next; }; int main() { struct st temp; temp.x = 10; temp.next = temp; printf("%d", temp.next.x); getchar(); return 0; }
Salida: Error del compilador
Una estructura C no puede contener un miembro de su propio tipo porque si esto está permitido, se vuelve imposible para el compilador conocer el tamaño de dicha estructura. Aunque un puntero del mismo tipo puede ser miembro porque los punteros de todos los tipos tienen el mismo tamaño y el compilador puede calcular el tamaño de la estructura.
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