以下几行代码:
#include<stdio.h>
int main()
{
printf("%d", printf("%d", printf("%d", 43)));
return 0;
}
运行结果为:4321
这就是链式访问的一个简单例子。
首先要了解 printf的返回值是整型,并且返回的是**打印在屏幕上字符的个数**。
因此上文的代码首先打印出 43 ,
而 43 有 2 个字符,
因此再打印 2 ,
2 只有 1 个字符,
因此再打印 1 。
综上,结果为4321。
如果将稍微修改一下这串代码,在%d后面加上空格:
#include<stdio.h>
int main()
{
printf("%d ", printf("%d ", printf("%d ", 43)));
return 0;
}
运行结果为:43 3 2
首先打印出 43 ,43 有 2 个字符
*由于空格也占 1 个字符*,即 43 + 空格 有 3 个字符,
因此下一步打印 3 ,而 3 + 空格 有 2 个字符,
因此再打印 2 。
综上,结果为43 3 2。