abs 函数意思为多种编程语言中的一种用于求数据绝对值的函数。
C++也有abs函数。但是,在C++中使用abs函数要注意存在两种版本,一种是在stdlib.h中定义的版本,另一个是在iostream或cmath头文件中定义的。事实上,在stdlib.h文件中定义的是C的函数,而cmath中的是C++版本。这两种版本有明显的差别。
C/C++ :
根据ISO C/C++的标准规定,C语言的abs函数仅仅支持整数的绝对值计算(返回值为整型),必须使用fabs才能获得浮点数的绝对值。
C++的abs则可以自然支持对整数和浮点数两个版本(实际上还能够支持复数),如果参数是整数类型,则返回值为相应的整数类型,如果参数为浮点数,则返回值为相应的浮点数类型。
如果在C++程序中,由于头文件关系,不慎使用了C版本的abs函数,并且输入的是一个有小数的浮点数,那么其行为就可能不符合程序员的预期了,因为在传入函数参数时,浮点数会用截断的方式转换为整数。
而使用C++版本的abs函数时,则需要注意返回值类型(如果用printf进行输出,需要使用正确的格式化输出参数)。
因此,通常建议在C++中使用fabs函数(必要时进行强制类型转换),而不要使用abs函数为好。
以上内容参考 百度百科—Abs函数
区别一:用法不同
1、abs()是对整数取绝对值
2、fabs()是对浮点数取绝对值
区别二:函数原型不同
1、abs的函数原型为:int abs(int x)
2、fabs的函数原型为:double fabs(double x)
区别三:头文件不同
1、abs(): #include <stdlib.h>
2、fabs(): #include <math.h>
扩展资料C语言特有特点
C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。
其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。
其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
参考资料来源:百度百科—C语言
abs(x):整数x的绝对值。fabs(x):浮点数(小数)x的绝对值。
pow(a, x):a的x次方,a和x是浮点数,返回值是浮点数(即使a和x都是整数,也会被转换成浮点数,因此整数运算可能损失精度,造成误差)。
exp(x):e的x次方,x是浮点数,e是自然对数的底数(一个无理数,值为2.71828....)