在C++ primer,或者c++标准书中是这样规定的:
sizeof(short) <= sizoef(int) <= sizeof(long) <= sizoef(long long)
它并没有回答各个数据类型的具体长度,而是由编译器自行决定
下面我们看下在操作系统为64位DEVC++下他们的长度都是多少:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
long b;
long long c;
float d;
double e;
cout<<"int 在64位系统上的字节数为:"<<sizeof(a)<<endl;
cout<<"long 在64位系统上的字节数为:"<<sizeof(b)<<endl;
cout<<"long long 在64位系统上的字节数为:"<<sizeof(c)<<endl;
cout<<"float 在64位系统上的字节数为:"<<sizeof(d)<<endl;
cout<<"double 在64位系统上的字节数为:"<<sizeof(e)<<endl;
}
输出结果如下: