函数
<cstdlib>

abs

int abs (int n);
     int abs (     int n);long int abs (long int n);
          int abs (          int n);     long int abs (     long int n);long long int abs (long long int n);
绝对值
返回参数 n 的绝对值 (/n/)。

在 C++ 中,此函数也在头文件 <cmath> 中为浮点类型进行了重载(参见 cmath abs),在头文件 <complex> 中为复数进行了重载(参见 complex abs),并在头文件 <valarray> 中为 valarray 进行了重载(参见 valarray abs)。

参数

n
整数值。

返回值

n 的绝对值。

可移植性

在 C 语言中,只存在 int 版本。
对于 long int 的等效版本,请参见 labs
对于 long long int 的等效版本,请参见 llabs

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
/* abs example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* abs */

int main ()
{
  int n,m;
  n=abs(23);
  m=abs(-11);
  printf ("n=%d\n",n);
  printf ("m=%d\n",m);
  return 0;
}

输出

n=23
m=11


数据竞争

并发调用此函数是安全的,不会导致数据竞争。

异常 (C++)

无抛出保证:此函数不会抛出异常。

如果结果无法用返回类型表示(例如,在采用二进制补码表示有符号值的实现中,abs(INT_MIN)),则会导致未定义行为

另见