通过sizeof运算符获取数据类型的大小,int占4个字节,表示一个int变量可以存储32位的数据;
vs2022中,sizeof运算符返回的结果是一个64位 (8bytes)的无符号整型的值,所以占位符要使用%lld;
#include <stdio.h>
int main()
{
bool b1 = true;
bool b2 = false;
printf("%lld", sizeof(b1));
}
布尔数据类型,存放的值只有真和假两个值;
有符号和无符号,所存放的数据是否带负号,如果有正负就有符号,如果只有正数则无符号;
signed有符号限定符,默认数据类型是有符号的,int 等于 signed int;
unsigned无符号,当对一个无符号数据赋值一个负数时,显示和存储的值会不一致;
显示无符号整数数据的占位符是%u;
signed int 的表示范围为:-2147483648 ~ 2147483647 (最高位做符号位)。
unsigned int 的表示范围为:0 ~ 4294967295
数据的取值范围
一个int数据类型占4个字节,就是32位,当有符号变量时,32位中的最高位通过1或0代表这个数据是正数还是负数,所以有符号数据的数据位是31位,所以最大值是 2147483647;
无符号数据类型时,32位可以表示的最大值是4294967295;