求大神帮忙看看这道C语言 printf题,不能直接printf("1");1.通过编程实现,在屏幕上输出“1”;

于是在网上找到了答案。

答:printf嘚%f说明符的确既可以输出float型又可以输出double型 根据"默认参数提升"规则(在printf这样的函数的可变参数列表中 ,不论作用域内有没有原型都适用這一规则)float型会被提升为double型。因此printf()只会看到双精度数参见问题15.2。

对于scanf情况就完全不同了,它接受指针这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样因此,scanf区别%f和%lf

下表列出了printf和scanf对于各种格式说明符可以接受的参数类型。


(严格地讲%lf在printf下是未定義的,但是很多系统可能会接受它要确保可移植性,就要坚持使用%f)
}

以下叙述以补足2数位为例其它依次类推:

%02x ,表示数据不足两位时先补0输出,再输出数位算上补充的0总共两数位;如果超过两位,则实际输出

 
 

%2x表示数据不足两位时,先补空格输出再输出数位,算上补充的空格符总共两数位; 如果超过两位则实际输出。
 

据运行结果知:interval与输出的16进制数间存在着一個空格源程序中并没有,该空格为“%2x”格式输出补充的
%.2x对整型数的格式化与%02x相同

      
 

%.2f,精确浮点数小数位
对于不带小数的浮点数以0补足尛数位;对于带小数的浮点数,按数位精确小数超过截断,不足补0

1.
 
 
 

发布了20 篇原创文章 · 获赞 11 · 访问量 1万+

}

格式:PDF ? 页数:3页 ? 上传日期: 19:24:53 ? 浏览次数:15 ? ? 1000积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

}

我要回帖

更多关于 C语言 printf 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信