C99识别两种类型的浮点数:实数浮点数类型和复浮点数类(<complex.h>)。两种类型共同组成了浮点类型。
复浮点数具有两个部分:一个实部和一个虚部。C99内部使用一个二维数组来表示复数,第一个部分为实部,第二个部分作为虚部。有3中复浮点类型:
float _Complex | 代表实部和虚部都是float值 |
double _Complex | 代表实部和虚部都是double值 |
long _Complex | 代表实部和虚部都是long double值 |
虚数只有虚部。这3中类型是:
float _Imaginary | 代表虚部是float值 |
double _Imaginary | 代表虚部是double值 |
long _Imaginary | 代表虚部是long double值 |
宏定义I表示i,也就是-1的平方根。
示例代码:
#include <complex.h> double _Complex z = 3.0; double _Complex w = 4.0 * I; double _Complex u = 6.0 - 8.0 * I;
ref: 《C Primer Plus》