在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;
}
輸出結果如下: