C语言中数据的大小
字节数
#include<stdio.h>
#include<stdbool.h>
int main()
{
printf("%zd\n", sizeof(char));
printf("%zd\n", sizeof(_Bool));
printf("%zd\n", sizeof(bool));
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));
return 0;
}
输出
1
1
1
2
4
4
8
4
8
16
注意:C99以后才有_Bool,类型等同于unsigned int,bool,true,false这三个宏储存在stdbool.h内
整数储存范围整型(Integer Types)
char:
占用字节数:
通常占用 1 个字节(8 位)。
表示范围:
有符号char的取值范围是 - 128 到 127,无符号char的取值范围是 0 到 255。它主要用于存储字符的 ASCII 值,例如char c = ‘A’;('A’的 ASCII 值为 65,'0’的ASCII码是48)。
short:
占用字节数:
一般占 2 个字节(16位)。
表示范围:
有符号short的范围是 - 32768 到 32767,2^15=32768,最高位储存符号
无符号short的范围是 0 到 65535。
int / long:
占用字节数:
在 32 位和 64 位系统中通常占 4 个字节(32位)。
表示范围:
在 32 位系统中,有符号int的范围是 - 2147483648 到 2147483647。2^31次方。大概是 2 ∗ 1 0 9 2*10 ^ 9 2∗109
long long:
占用字节数:
通常占 8 个字节(64位)。
表示范围:
有符号long long的范围是 - 9223372036854775808 到 9223372036854775807。大概是9的18次方。