写一个程序,用程序来说明
郁金香Q吧
#include
int main( void )
{
int i = 1234;
printf( "%d", printf( "%d", printf( "%d", i ) )
);
return 0;
}
答案便是:123441
printf( "%d", printf( "%d", printf( "%d", i ) )
);
1,从左向右执行,第一个printf发现要调用第二个printf,第二个printf发现要调用第三个printf;
2,第三个printf输出1234,返回值为4,即返回字符长度,返回值给第二个printf打印
3,第二个printf输出4,返回值为1,返回值给第一个printf打印
4,第一个printf输出1。所以最后输出为123441.
为了更好的说明每个printf输出的是什么,我在%d后面加了个转义字符\n
#include
int main( void )
{
int i = 1234;
printf( "%d\n", printf( "%d\n", printf( "%d\n", i
) ) );
return 0;
}
输出的结果:
1234
5
2
结论一样,只不过转义字符占一个字符
printf( "%d", printf( "%d", printf( "%d", i )
) );
1,从左向右执行,第一个printf发现要调用第二个printf,第二个printf发现要调用第三个printf;
2,第三个printf输出1234,返回值为5,多了一个转义字符\n,返回值给第二个printf打印
3,第二个printf输出5,返回值为2,返回值给第一个printf打印
4,第一个printf输出2。