我的c学习:原来printf也有返回值

来源:互联网 发布:mac sunlime3 注册码 编辑:程序博客网 时间:2024/05/01 15:01
    #include <stdio.h>    int main()    {        printf("hollow world");        return 0;    }

这是一个简单的程序,可以看出printf是一个函数,
其使用方法printf(“<格式化字符串>”, <参量表>)
查看源码发现它是这样定义的

int printf(char * buf, const char *fmt, ...){  va_list args;  int i;  va_start(args, fmt);  i=vsprintf(buf,fmt,args);  va_end(args);  return i;}

先不需要看懂这段代码,但我们可以发现printf这个函数是有一个int返回值的,那么这个返回值是什么?
简单修改一下第一段代码

    #include <stdio.h>    int main()    {        int a;//在这里设置一个int型变量        a=printf("hollow world/n");        printf("%d\n"),a;        return 0;    }

在code::blocks中运行,结果如下

hollow world
13

不难发现这个13代表的是打印的字符数
hollow word 字符数刚好是13(空格也计算在内)。

所以printf函数返回一个int值,表示被打印的字符数。

0 0