一、复数和虚数类型
1.C语言有三种复数类型:float _Comples
,double _Complex
,long double _Complex
- float_complex类型的应包含两个float类型的值,分别表示实部和虚部。
- 类似的C语言的三种虚数类型为1
float _Imaginary
,double _Imaginary
,long double _Complex
- 如果包含
complex.h
头文件,便可以使用complex
来代替_Complex
,用imaginary
来代替_Imaginary
,用I
来替代-1
的平方根。
2.为什么C语言不直接使用complex作为关键字来替代_Complex,而要添加一个头文件(该头文件把complex定义为_Complex)
- 主要原因是为了怕以前的代码失效。
- C99时代,许多人使用struct complex定义一个结构,表示复数或者心理学程序中的心理状况。
- 标准使用首字母是下划线作为预留字
二、小结
1.基本数据类型由11个关键字组成
分别为:short,long,ing,char,float,double,unsigned,signed,_Bool,_Complex,_Imaginary
2.有符号的整形:
int
- 系统给定的基本整数类型,不小于16位。
short
或short int
- 最大的short类型整数小于或者等于最大的int类型整数,至少占16位
long
或long int
- 该类型可以表示的整数大于或等于最大的int类型整数,至少占32位。
long long
或long long int
- 该类型可表示整数大于或者等于最大的long类型整数,至少64位。
一般而言,
long
类型占用的内存要比short
类型大,int
类型宽度要么和long
类型相同,要么和short
类型相同。依据计算机底层来定。
3.无符号整型
前面加上
unsigned
即可,单独的unsigned
代表unsigned int
4.字符类型
char类型表示一个字符占用1字节内存(也可以16位)
5.布尔类型
_Bool布尔类型关键字,是无符号的int类型
6.实浮点类型
float - 系统的基本浮点类型,可精确表示至少6位有效数字
double - 储存浮点数的范围(可能)更大,能表示更多有效数字,或指数
long double - 比double范围(可能)更大。
7.复数和虚数浮点数
float _Complex,double _Complex,long double _Complex,float _Imaginary,double _Imaginary,long double _Imaginary
8.如何知道当前系统的指定类型大小?
#include<stdio.h> int D13_typesize(void) { //C99为类型提供了%zd转换说明 printf("Type int has a size of %zd bytes. ", sizeof(int)); printf("Type char has a size of %zd bytes. ", sizeof(char)); printf("Type long has a size of %zd bytes. ", sizeof(long)); printf("Type long long has a size of %zd bytes. ", sizeof(long long)); printf("Type double has a size of %zd bytes. ", sizeof(double)); printf("Type long double has a size of %zd bytes. ", sizeof(long double)); return 0; }
运行结果
- sizeof是C语言内置运算符,以字节为单位给出指定类型的大小,C99和C11提供了
%zd
来匹配sizeof的返回类型,一些不支持C99和C11的编译器可以使用%u
或%lu
来代替。
三、源码:
- D13_typesize.c
- D12_2_Floaterr.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D13_typesize.c
- https://github.com/ruigege66/CPrimerPlus/blob/master/D12_2_Floaterr.c
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包