关键字
基本数据类型由11个关键字组成:int,long,short,unsigned,char,float,double,signed,_Bool,_Complex和_Imaginary
有符号整型
用于表示正整数和负整数
int 系统给定的基本整数类型。C语言规定int类型不小于16位
short或short int 最大的short类型整数小于或等于最大的int类型整数。C语言规定short类型至少占16位
long或long int 该类型可以表示的整数大于或等于最大的int类型整数。C语言规定long类型至少32位
long long 或 long long int 该类型可以表示的整数大于或等于最大的long类型整数。C语言规定long类型至少64位
无符号整型
无符号整型只能用于表示零或正整数
在整数类型前加上unsigned即可表示无符号整型,如unsigned short, unsigned int,unsigned long
单独的unsigned 表示unsigned int
字符类型
可以打印出来的符号都是字符。据定义,char类型表示一个字符需要占用1个字节的内存,1字节通常是8位。
- char 字符类型关键字,前面可以加上unsigned 或 signed 表示有符号char 或无符号char
布尔类型
布尔值表示true或false。C语言用1表示true,用0表示false。
_Bool 布尔类型的关键字,是无符号int类型。只能赋值为1或0,如果把其他整数赋值给_Bool类型的变量,该会被设置为1.
C99提供了stdbool.h头文件。该头文件让bool成为_Bool 的别名,而且还把true和false定义为1和0的符号常量。
实浮点数类型
float 系统基本浮点类型,可精确表示至少6位有效数字。
double 存储浮点数的范围(可能)更大,能表示比float类型更多的有效数字(至少10位,通常会更多)和更大的指数
long double 存储浮点数的范围(可能)比double更大,能表示比double类型更多的有效数字和更大的指数
sizeof
sizeof是C语言内置运算符,以字节为单位给出指定类型或变量的大小。C99和C11提供%zd匹配sizeof的返回类型
#include <stdio.h>
int main(void)
{
printf("Type int has a size of %zd bytes.\n",sizeof(int));
printf("Type char has a size of %zd bytes.\n",sizeof(char));
printf("Type long has a size of %zd bytes.\n",sizeof(long));
printf("Type long long has a size of %zd bytes.\n",sizeof(long long));
printf("Type long double has a size of %zd bytes.\n",sizeof(long double));
printf("Type double has a size of %zd bytes.\n",sizeof(double));
return 0;
}
运行结果如下: