【学习笔记】printf函数

printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包

stdio.h文件。printf函数调用的一般形式为:

    printf(“格式控制字符串”输出表列) ; 

其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字

符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如: 

%d”表示按十进制整型输出; 

%ld”表示按十进制长整型输出; 

%c”表示按字符型输出等。

  

1)类型

 

 

 

2)标志

 

 

3) 输出最小宽度
用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0

 

 

4) 精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

 

 

 

5) 长度
长度格式符为hl两种,h表示按短整型量输出,l表示按长整型量输出。

 

例如:

 

本例中: 

以四种格式输出整型变量a的值,其中“%5d”要求输出宽度为5,而a值为15只有两位故补三个空格。 

以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。

%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。 

输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。 

输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

 

 

printf函数对输出表中各量求值的顺序是自右至左进行的

但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右。

 

代码分析:

main(){
    int i=8;
    printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}

main(){
    int i=8;
   
 printf("%d\n",++i);

    printf("%d\n",--i);

    printf("%d\n",i++);
   
 printf("%d\n",i--);

    printf("%d\n",-i++);
    printf("%d\n",-i--);
}

这两个程序的区别是用一个printf语句和多个printf 语句输出。但从结果可以看出是不同的。为什么结果会不同呢?

就是因printf函数对输出表中各量求值的顺序是自右至左进行的。在第一例中,先对最后一项“-i--”求值,结果为-8,然后i

自减17。 再对“-i++”项求值得-7,然后i自增1后为8。再对“i--”项求值得8,然后i再自减1后为7。再求“i++”项得7

然后i自增1后为8。 再求“--i”项,i先自减1后输出,输出值为7。 最后才求输出表列中的第一项“++i”,此时i自增1后输

8

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值