https://www.cnblogs.com/wuyudong/p/c99-new-feature.html
1.复数(complex)
complex.h是C标准函数库中的头文件,提供了复数算术所需要的宏定义与函数声明。
#definecomplex _Complex#define_Complex_I ((const float _Complex)__I__)#defineI _Complex_I
C99规定了关键字_Complex。因而有3种复数类型:
double _Complex
float _Complex
long double _Complex
次序不是必须遵守的,比如float _Complex也可以写成_Complex float。_Complex_I扩展为类型为const float _Complex的常量值,其值为虚数单位。C99规定complex作为宏扩展为_Complex。但C++未定义complex宏。gcc仅支持complex type,不支持imaginary type。因此宏I扩展为_Complex_I。
里面还包含了不少支持复数的数学函数(c打头的就是):
1、ccos,csin,ctan,cacos,casin,catan:复数域内的三角函数,有对应的f和l版本。
2、ccosh,csinh,ctanh,cacosh,casinh,catanh:复数域内的双曲函数,有对应的f和l版本。
3、cexp,clog,cabs,cpow,csqrt:复数域内的指数、对数、绝对值、幂函数,有对应的f和l版本。
4、carg,cimag,creal,conj,cproj:获取象限角、虚数部分、实数部分、a=x及b=-y、Riemann球上的投影,有对应的f和l版本。
代码:
#include#includeint main()
{
doublecomplex cmp =1.3+2.3*I;
printf(“%f + %fi\n”, creal(cmp), cimag(cmp));
return0;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1、_Complex是一种新增的数据类型,用来表示复数。C99
新增了复数类型(_Complex)和虚数类型(_Imaginary)。简单来说,C99 提供了三种复数类型:
float _Complex,double _Complex,和 long double _Complex。
对于float _Complex类型的变量来说,它包含两个 float类型的值,一个用于表示复数的实部(real part),
另一个用于表示虚部(imaginary part)。类似地,double _Complex 包含两个 double类型的值。
C99也提供了三种虚数类型:float _Imaginary,double _Imaginary,以及 long double_Imaginary。
虚数类型只有虚部,没有实部。
2、包含标准头文件 complex.h 后,就可以用 complex来代表 _Complex,用imaginary来代表 _Imaginary,以及用 I来代表虚数单位 i,也就是 -1的平方根。例如:
#include
double _Complex x = 5.2;
double complex y = 5.0 * I;
double complex z = 5.2 – 5.0 * I;
3、
注意:_Complex类型对于独立式环境(freestanding
environment)来说是可选的。可选的意思是,不强制必须支持这种类型。而所谓独立式环境,是指 C
程序可以在没有操作系统的情况下运行。_Imaginary类型在任何环境下都是可选的。目前的编译器对这两种类型的支持都不太好。
今天的文章c语言中complex.h用法,complex.h复数及其运算分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26463.html