C++基本类型包括算术类型和空类型(void)
算数类型包含整型(包括字符和布尔类型)和浮点型
C++标准规定尺寸的最小值如下
类型 | 含义 | 大小 |
---|---|---|
bool |
布尔类型 | 未定义 |
char |
字符 | 8位 |
int |
整型 | 16位 |
long |
长整型 | 32位 |
long long |
长整型 | 64位 |
float |
单精度浮点数 | 6个有效数字 |
double |
双精度浮点数 | 10个有效数字 |
1字节(byte)= 8位(bit)
1字(word)= 4或8字节(byte)= 32或64位(bit)
我们可以看一看实际大小
#include <iostream>
using namespace std;
int main()
{
cout << "size of bool :" <<' '<<sizeof(bool)<< " byte"<<endl;
cout << "size of char :" << ' ' << sizeof(char) << " byte" << endl;
cout << "size of short :" << ' ' << sizeof(short) << " byte" << endl;
cout << "size of int :" << ' ' << sizeof(int) << " byte"<<endl;
cout << "size of long:" << ' ' << sizeof(long) << " byte" << endl;
cout << "size of long long:" << ' ' << sizeof(long long) << " byte" << endl;
cout << "size of float:" << ' ' << sizeof(float) << " byte" << endl;
cout << "size of double:" << ' ' << sizeof(double) << " byte" << endl;
cout << "size of long double:" << ' ' << sizeof(long double) << " byte" << endl;
return 0;
}
输出结果如下
size of bool : 1 byte
size of char : 1 byte
size of short : 2 byte
size of int : 4 byte
size of long: 8 byte
size of long long: 8 byte
size of float: 4 byte
size of double: 8 byte
size of long double: 16 byte
可以看到bool虽然只有0和1两个值,但是也要占1byte,所以bool只有1位有信息,其余7位是浪费的。
参考:C++ Primer