黑马程序员技术交流社区

标题: 一个C语言printf问题 [打印本页]

作者: 永远不会贬值    时间: 2014-6-2 22:32
标题: 一个C语言printf问题
#include <stdio.h>

int main()
{
    int i = 43;
    printf("%d\n",printf("%d",printf("%d",i)));
    return 0;
}

请问为什么输出结果是  4321   
作者: 兰WX    时间: 2014-6-2 22:40
print()函数是有返回值得,返回打印的字符数,printf("%d\n",printf("%d",printf("%d",i)))打印过程:
1.printf("%d", i)     屏幕打印出43,函数返回2;
2.printf("%d",printf("%d", i))相当于printf("/%d", 2),屏幕打印出2,函数返回1;
3.同理,最后输出printf("%d\n", 1),也就是打印出1
作者: Guardian_Angel    时间: 2014-6-2 23:25
楼上正解,具体可以查看那个ascii码表!
作者: 魑魅魍魉121    时间: 2014-6-6 09:24
函数先输出43而第二个输出时输出printf("%d",i)他返回的是2,第一个输出的是printf("%d",printf("%d",i))返回的是1.所以输出的是4321
作者: 斑马    时间: 2014-6-6 12:56
兰WX 发表于 2014-6-2 22:40
print()函数是有返回值得,返回打印的字符数,printf("%d\n",printf("%d",printf("%d",i)))打印过程:
1.pr ...
1.printf("%d", i)     屏幕打印出43,函数返回2;

请问这个返回值为什么是2啊?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2