printf

首先,printf函数是c中的一个标准库函数 ,作用是按照格式输出数据,

他的格式为printf(格式控制,输出表列);

格式控制通俗的讲就是对输出数据的类型要求,例如

printf(”%d,%f,%lld,%l”,a,b,c,d);//按照十进制整数,单精度浮点数, 

//long long,long int输出

当然,我们也可以直接输出字符串

printf(“Hello World”);//直接输出Hello World


然而,printf函数的原型为
extern int printf(const char *format,...);
int printf( char format ...)
{
 va_list ap;
 int n;
 va_start (ap,format);
 n=vprintf(format ,ap);
 va_end(ap);
 return n;
} 看了原型后,你可能就会明白。 printf函数和普通函数一样, 把参数分开看,第一个参数是一个char * 类型的参数。 所以我们在上面printf("Hello World"); 其实只是将这个存放"Hello World"的地址传递过去, 在函数题内,大致就做了把传递过来的指针进行解引用,然后对字符串进行分割比对。然后再进行显示。 “第二个参数”“...”其实是函数的可变参。表示这个函数的参数个数不是确定的。 可变参函数,至少得有一个参数是确定的,从而确定其他的参数的地址(压栈时,各个参数之间地址是连续的)。 下面你是我写的一个可变参求和函数 这里还要简单说一下压栈的过程。函数调用时,从右向左依次压栈 由于栈从高地址到低地址,所以通过最左边的参数,加上偏移量,就可以得到其他参数。 printf 函数的返回值是在屏幕上显示的字符的个数。 第一行的结果是字符串“Hello World!”加上换行“\n”总共13个字符 所以第二行打印“13”和换行“\n”总共3个字符 所以第三行打印“3”
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值