Prediga la salida de los siguientes programas en C.
Pregunta 1
#include<stdio.h> #define fun (x) (x)*10 int main() { int t = fun(5); int i; for(i = 0; i < t; i++) printf("GeesforGeeks\n"); return 0; }
Salida: Error del compilador
Hay un espacio adicional en la declaración de la macro que hace que fun sea reemplazada por (x). Si eliminamos el espacio adicional, el programa funciona bien e imprime «GeeksforGeeks» 50 veces. A continuación se muestra el programa de trabajo.
#include<stdio.h> #define fun(x) (x)*10 int main() { int t = fun(5); int i; for(i = 0; i < t; i++) printf("GeesforGeeks\n"); return 0; }
Tenga cuidado al tratar con macros. Los espacios adicionales pueden causar problemas.
Pregunta 2
#include<stdio.h> int main() { int i = 20,j; i = (printf("Hello"), printf(" All Geeks ")); printf("%d", i); return 0; }
Salida: Hello All Geeks 11
La función printf() devuelve el número de caracteres que imprimió con éxito. El operador de coma evalúa sus operandos de izquierda a derecha y devuelve el valor devuelto por la expresión más a la derecha (consulte esto para obtener más detalles). Primero printf(«Hola») ejecuta e imprime «Hola» , el printf(«Todos los Geeks») ejecuta e imprime «Todos los Geeks» . Esta instrucción printf devuelve 11 que se asigna a i.
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