C程序的输出| 21套
预测以下 C 程序的输出。
问题 1
#include
#define fun (x) (x)*10
int main()
{
int t = fun(5);
int i;
for(i = 0; i < t; i++)
printf("GeesforGeeks\n");
return 0;
}
输出:编译器错误
宏声明中有一个额外的空间,导致乐趣被 (x) 取代。如果我们删除多余的空间,那么程序运行良好并打印“GeeksforGeeks”50 次。以下是工作程序。
#include
#define fun(x) (x)*10
int main()
{
int t = fun(5);
int i;
for(i = 0; i < t; i++)
printf("GeesforGeeks\n");
return 0;
}
处理宏时要小心。多余的空格可能会导致问题。
问题2
#include
int main()
{
int i = 20,j;
i = (printf("Hello"), printf(" All Geeks "));
printf("%d", i);
return 0;
}
输出:Hello All Geeks 11
printf()函数返回它已成功打印的字符数。逗号运算符从左到右计算它的操作数,并返回最右边的表达式返回的值(有关更多详细信息,请参见此处)。首先printf(“Hello”)执行并打印“Hello” , printf(“All Geeks”)执行并打印“All Geeks” 。此 printf 语句返回分配给 i 的 11。