百科问答小站 logo
百科问答小站 font logo



请问如何区分c语言中float和double的用法? 第1页

  

user avatar   zhan-qi-lai-74-48 网友的相关建议: 
      

sqrt函数的返回值是double类型。

相应的,返回float和long double的分别是sqrtf、sqrtl。

其他数学函数同理。


因为函数的可变参数列表中,float会自动提升为double,所以printf函数中%f和%lf都可以用于float和double,二者无区别。(但是C90及以前则只定义了%f、没有定义%lf)。

但是,可变参数列表中,float *不会提升为double *,或者说是因为float和double的长度不同(指针三要素:指向的首地址、指向目标的长度、指向目标的类型),所以scanf中float能且只能用%f、double能且只能用%lf。

至于long double,无论是printf还是scanf,都用%Lf。




  

相关话题

  在C++中,为什么部分程序员喜欢在循环中写‘++i’而不是‘i++’? 
  C语言编写时,将参数传递跨越多个函数的方式是否是妥当的? 
  C语言中,stdio.h是最重要的头文件吗? 
  malloc申请的内存能是虚拟内存吗,也就是申请的一块新的空间,刚申请就缺页吗? 
  为何对于无符号数,右移必须是逻辑的? 
  为什么很多编程语言采用花括号区分 block 而非缩进? 
  为什么有些编程语言写完一句后要加分号? 
  两年嵌入式C语言编程经验,如果有机会做和 Android 相关的 C++、JAVA,还有 Javascript 脚本开发工作,转过去好吗? 
  C标准库的行业地位是怎么形成的? 
  学习完C语言后应该学什么? 

前一个讨论
C++中lambda表达式中捕获的值变量存在哪?
下一个讨论
AMD Zen2偶发,Zen3高发的WHEA-18错误,可能是由什么原因造成的?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利