百科问答小站 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。




  

相关话题

  如何理解编程语言中「流」(stream)的概念? 
  开源代码里某个函数很长,这种代码能否认为是好的? 
  为什么现在部分985高校还是给大一上C语言课? 
  Linux 内核的 C 代码风格是怎样的? 
  为什么char *a="xxxxx", *b="xxx"; strcpy(a, b);的用法不行? 
  一个N*N的矩阵,取值为0或1,有什么好的算法判断一行或一列全为1啊? 
  为什么MSVC比GCC/Clang差(功能支持也差,译后性能也差),微软做不好一个C语言编译器吗? 
  像C语言这样的编译型语言能否在不同CPU上,通过相同标准库的编译器,用源代码实现跨平台? 
  怎么在matlab中执行c语言代码,或者把c代码转换成matlab代码? 
  semaphore和mutex的区别? 

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





© 2025-05-07 - tinynew.org. All Rights Reserved.
© 2025-05-07 - tinynew.org. 保留所有权利