目录
1、数据类型介绍
其中内置类型是C语言本身自带,直接可以使用;
自定义类型是可以创造自己想要的类型。
1.1、字符型
char
分为有符号和无符号类型:[signed] char //有符号的
和unsigned char //无符号的
1.2、整型
其中[]
内是可以省略的,各种整型类型还可以再分为有符号[signed]
和无符号unsigned
两种类型
1.3、浮点型
三种类型
float
:单精度浮点型
double
:双精度浮点型
long double
(不常用)
1.4、布尔类型
C语言原来并没有为布尔值单独设置一个类型,而是使用整数0表示假,非零值表示真。
在C99中也引入布尔类型,是专门表示真假的。
布尔类型的使用要包含头文件<stdbool.h>
;布尔类型变量的取值是:true
或false
;用_Bool
表示数据类型;其中 true
表示1,false
表示0;后来为了方便,定义#define bool _Bool
,所以以后定义布尔类型变量直接使用bool
;但是也需要引入头文件。
布尔类型是C99标准中引入的;
1.5、各种数据类型的长度
每一种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,变量长度的不同,存储的数据范围就有所差异。
1.5.1、sizeof 操作符
sizeof
是一个关键字,也是操作符,专门是用来计算sizeof
的操作符数的类型长度的,单位是字节。
sizeof
操作符的操作数可以是类型,也可以是变量或者表达式。
sizeof(类型)
sizeof 表达式
1.5.2、各种数据类型长度
#include <stdio.h>
#include <stdbool.h>
int main()
{
printf("%zd\n", sizeof(char));
printf("%zd\n", sizeof(short));
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(long));
printf("%zd\n", sizeof(long long));
printf("%zd\n", sizeof(float));
printf("%zd\n", sizeof(double));
printf("%zd\n", sizeof(long double));
printf("%zd\n", sizeof(bool));
return 0;
}
在 VS2019 x64 配置下输出结果为:
【注意事项】
sizeof
的操作如果不是类型,是表达式的时候,可以省略掉后面的括号。sizeof
后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。sizeof
的计算结果是size_t
类型的。sizeof
返回值用%zd
打印。
何为size_t
?
sizeof
运算符的返回值,C 语言只规定是无符号整数,并没有规定具体的类型,而是留给系统自己去决定,sizeof
到底返回什么类型。不同的系统中,返回值的类型有可能是unsigned int
,也有可能是 unsigned long
,甚至是unsigned long long
,对应的printf()
占位符分别是%u
,%lu
和 和