函式
<cmath> <ctgmath>

pow

double pow (double base, double exponent);
     double pow  (double base     , double exponent);      float powf (float base      , float exponent);long double powl (long double base, long double exponent);
     double pow (double base     , double exponent);      float pow (float base      , float exponent);long double pow (long double base, long double exponent);     double pow (double base     , int exponent);long double pow (long double base, int exponent);
     double pow (double base     , double exponent);      float pow (float base      , float exponent);long double pow (long double base, long double exponent);     double pow (Type1 base      , Type2 exponent);        // additional overloads
冪運算
返回baseexponent次冪

baseexponent

標頭檔案 <tgmath.h> 提供了此函式的型別通用宏版本。
此函式在<complex><valarray>中被過載(參見 complex powvalarray pow)。
此標頭(<cmath>)中還提供了其他 算術型別Type1Type2)的過載:這些過載有效地將引數轉換為double進行計算,除非至少有一個引數是long double型別(在這種情況下,兩者都轉換為long double)。

此函式也在<complex><valarray>中被過載(參見 complex powvalarray pow)。

引數

base
基準值。
exponent
指數值。

返回值

base提高到exponent次冪的結果。

如果base 是有限的負數且exponent 是有限的但不是整數值,則會導致定義域錯誤
如果baseexponent都為零,在某些實現中也可能導致定義域錯誤
如果base為零且exponent為負,則可能導致定義域錯誤極點錯誤(或無錯誤,取決於庫實現)。
如果結果過大或過小而無法用返回型別的值表示,該函式也可能導致範圍錯誤

如果發生定義域錯誤,全域性變數 errno 會被設定為 EDOM
如果發生極點範圍錯誤,全域性變數errno將設定為ERANGE
如果發生定義域錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 會被設定為 EDOM
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_INVALID

如果發生極點錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_DIVBYZERO

如果發生範圍錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且math_errhandling設定為MATH_ERREXCEPT:將引發FE_OVERFLOWFE_UNDERFLOW

示例

1
2
3
4
5
6
7
8
9
10
11
/* pow example */
#include <stdio.h>      /* printf */
#include <math.h>       /* pow */

int main ()
{
  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );
  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );
  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );
  return 0;
}

輸出

7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691


另見