我最近遇到了这段代码,但我无法理解它是如何工作的
#include<stdio.h>
int main(){
printf("Line 1\n",
printf("Line 2\n",
printf("Line 3\n",
printf("Line 4\n",
0))));
return 0;
}
它给出以下输出:
Line 4
Line 3
Line 2
Line 1
printf用于打印格式化的行。例如,要打印一个整数,您可以调用:
printf( "%d", 1 );
您所做的就是使用嵌套的返回值来调用它print
作为参数,这意味着它首先需要评估嵌套调用。您的呼叫类似于:
int temp;
temp = printf("Line 4\n", 0);
temp = printf("Line 3\n", temp);
temp = printf("Line 2\n", temp);
temp = printf("Line 1\n", temp);
另请注意,由于格式字符串中没有格式说明符,因此第二个参数没有任何意义,如果您的编译器足够好,它甚至会警告您这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)