首先说一个“默认参数提升”的概念:

If the expression that denotes the called function has a type that does include a prototype, the arguments are implicitly converted, as if by assignment, to the types of the corresponding parameters, taking the type of each parameter to be the unqualied versionof its declared type. The ellipsis notation in a function prototype declarator causes argument type conversion to stop after the last declared parameter. The default argument promotions are performed on trailing arguments.  -- C11 6.5.2.2  Function calls (6)

在可变长参数函数(例如printf函数)或者不带原型声明函数中,在调用该函数时C自动进行类型提升(在调用函数时如果声明这个函数那么则不会提升),提升如下:

——float类型的实际参数将提升到double
——char、short和相应的signed、unsigned类型的实际参数提升到int
——如果int不能存储原值,则提升到unsigned int
然后,调用者将提升后的参数传递给被调用者。C标准对默认实际参数提升规则有明确规定。也就是说, 带有可变长参数列表的函数, 绝对不会接受到char类型的实际参数。

printf中用%d输出float或者double相关推荐

  1. php可以用scanf,C/C++中 使用scanf和printf如何读入输出double型数据。

    黄舟2017-04-17 13:47:232楼 注意scanf函数和printf函数是不同寻常的函数,因为它们都没有将函数的参数限制为固定数量.scanf函数和printf函数又可变长度的参数列表.当 ...

  2. c语言对浮点数的处理默认是double吗,C语言中浮点数float和double输出的问题

    C语言中浮点数float和double输出的问题 关注:260  答案:6  信息版本:手机版 解决时间 2019-01-12 07:33 斑駁影 2019-01-11 09:20 #includev ...

  3. java double输出 lf_为什么double类型输入(scanf)用%lf,输出(printf)用%f?

    float是浮点型,double是double float的意思,也就是双精度浮点型. %f是以float类型格式化输入或输出,%lf是long float的意思(估计是和%ld对应),也就是指dou ...

  4. C语言:十六进制(HEX)和浮点类型(float、double)转换

    目录 1.浮点类型转换为十六进制 方法1:用地址用指针 方法2:用共用体 方法3: 使用memcpy 2.十六进制转换为浮点类型 近日在研究Modbus协议的时候遇到这样一个情况:使用ModScan3 ...

  5. c语言中对float保留固定3位,float保留三位小数 float,double 除法 保留 指定位

    java里怎样让float保留3位小数 数据库里保存的float值是0.0346562 保留小数位3位 如0.035后面的四舍五有一个方法很简单,保留三个小数,就是乘以1000(10的3次方),取整, ...

  6. Java入门之7:Java中的float和double类型的浮点数是怎么按照IEEE 754标准存储的?

    前言: 这篇博文,我写了好几天--,里面涉及的基础概念比较多,内容比较多,举例也比较多,想搞清楚明白就难免 我自己都会觉得啰嗦,我整理了目录出来,看完需要一点时间,可以自行根据需要.感兴趣的 选择阅读 ...

  7. c语言double存储方式,C - float和double在内存存储解析

    float和double在内存存储解析 C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储. float数据占用32bit,double数据占用64bit. 我 ...

  8. c语言输出的时候让字符占五位,C语言中printf的规范输出

    1.调用格式为  printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%" ...

  9. 杭电OJ 1056 float 和double 相等以及大小的比较

    这道题的坑就是容易把float和double混用,导致结果不对,起初我把sum和m(见下文代码)定义为float类型,而sum初始化的时候又用了sum=1.0/2; 结果导致在循环条件判断的时候dou ...

最新文章

  1. LINUX下SVN命令大全
  2. 部门内 IDEA 分享,超实用技巧!
  3. 工作五年,后面四年重复着第一年的活儿?
  4. python绘制灰度图片直方图-python – numpy图像中灰度值的直方图
  5. Python之路(第三十九篇)管道、进程间数据共享Manager
  6. java中volatile关键字
  7. idle运行python_如何从IDLE交互式shell运行python脚本?
  8. Apache不记录制定文件类型日志
  9. Win8下80端口被System占用,造成Apache不能启动的解决办法
  10. android应用开发(26)---Parcelables 和 Bundles
  11. ajax的两个重要参数contentType 和dataType
  12. system/app 下 精简程序
  13. Python ftp 下载AHI数据
  14. 网络推广100种方法
  15. 齐齐哈尔大学计算机考研资料汇总
  16. zen cart template zencart模板修改
  17. php 以自动打字程序,使用vbs脚本实现自动打字祝福与搞笑实现代码
  18. 金蝶云星空和小满OKKICRM单据接口对接
  19. Hbase(3):HBase常用shell
  20. linux 打开三维stl文件,三维stl文件查看工具下载

热门文章

  1. VS2012C语言有编译按钮在哪,VS2012的使用
  2. 旗鱼云梯和宝塔面板对比
  3. matlab程序员得浪漫,程序员也懂浪漫,表白代码,你值得拥有
  4. 被隔离后,到手的offer没了:疫情下的2020年,我们都过得太难了
  5. 十进制有限小数如何以二进制保存而不会变成无限小数
  6. U盘误格式化后恢复操作
  7. 读书笔记 - 小米生态链: 101条战地法则
  8. 打开CHM文件是空白的
  9. XML文件编辑器(XML Editor)介绍 及 相关开源资料
  10. Python 网络爬虫实战:爬取知乎回答中的全部图片