四种内置数据类型
1.字符型
char 字符类型
[signed] char 有符号的
unsigned char 无符号的
2.整形
用于表示整数的类型
int 整形类型
1.short [int] 短整型
2.[signed] short [int] 有符号的短整型
3.unsigned short [int] 无符号的短整型
1.long [int] 长整型
2.[signed] long [int]
3.unsigned long [int]
1.long long [int] 更长的整形
2.[signed] long long [int]
3.unsigned long long [int]
打印格式
int a = -10;
unsigned int b = 10;
unsigned long int c = 100;
unsigned long long int d = 1000;
printf("%d",a);//有符号的整数
printf("%u",b);
printf("%lu",c);
printf("%llu",d);
3.浮点型
1.float 单精度浮点型
2.double 双精度浮点型
3.long double 精度更高
4.布尔类型
_Bool 布尔类型 也可写为bool
用于判断真假
布尔类型的使用需要包含头文件<stdbool.h>
#include <stdbool.h>
int main()
{
_Bool flag = false;
if (flag)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
数据类型的长度
每种数据类型都有自己的长度,使用不同数据类型可以创建不同长度的变量,变量长度不同,存储的数据范围不同
1.sizeof 操作符
sizeof是一个关键字,也是操作符,专门用来计算sizeof的操作符数的类型长度的,单位是字节(存储一个二进制位需要的空间是一个bit位,八个bit位是一个字节)
sizeof操作符的操作数可以是类型,也可以是变量或表达式
1.sizeof(类型)
printf("%zd\n",sizeof(char))
2.sizeof 表达式
int a = 10;
printf("%zd\n",sizeof(int));
printf("%zd\n",sizeof a);
输出结果均为4
sizeof中表达式不计算
int main()
{
short s = 2;
int b = 10;
printf("%zd\n",sizeof(s = b + 1));//输出结果为2,s是short类型,长度为2
printf("%d\n",s);//输出结果为2,放在sizeof内部的表达式不计算
return 0;
}
C语言规定sizeof返回值的类型是size_t
size_t n = sizeof(int);
printf("%zd\n",n);\\%zd专门打印size_t类型
2.signed和unsigned
C 语言使用 signed 和 unsigned 关键字修饰 字符型和整型 类型
signed 关键字,表示⼀个类型带有正负号,包含负值;
unsigned 关键字,表示⼀个类型不带有正负号,只能表示零和正整数;
int =signed int //有符号的整形
unsigned=unsigned int //无符号的整形
整数变量声明是unsigned的好处是:同样长度的内存,能够表达的最大整数值大一倍
有符号的char必须写为:signed char
无符号的char必须写为:unsigned char 不可省略