各基本类型在内存中占得字节数受操作系统和编译器得影响,但有几条规则:
(1)short>=16;
(2)sizeof(int)>=sizeof(short);
(3)sizeof(long)>=sizeof(int);
(4)sizeof(long long)>=sizeof(long);
(5)long>=32;
下面通过编译器来识别short、int、long、long long等基本类型的字节、最大值、最小值等。(本人电脑:64位)
#include <iostream>
#include <climits>
#include <limits>
int main()
{
using namespace std;
cout<<"type"<<"\t\t\tsize"<<"\tMinValue"<<"\t\tMaxValue"<<endl;
cout<<"short"<<"\t\t\t"<<sizeof (short)<<"\t"<<numeric_limits<short>::min()<<"\t\t\t"<<numeric_limits<short>::max()<<endl;
cout<<"unsigned short"<<"\t\t"<<sizeof (unsigned short)<<"\t"<<numeric_limits<unsigned short>::min()<<"\t\t\t"<<numeric_limits<unsigned short>::max()<<endl;
cout<<"int"<<"\t\t\t"<<sizeof (int)<<"\t"<<numeric_limits<int>::min()<<"\t\t"<<numeric_limits<int>::max()<<endl;
cout<<"unsigned int"<<"\t\t"<<sizeof (unsigned int)<<"\t"<<numeric_limits<unsigned int>::min()<<"\t\t\t"<<numeric_limits<unsigned int>::max()<<endl;
cout<<"long"<<"\t\t\t"<<sizeof (long)<<"\t"<<numeric_limits<long>::min()<<"\t\t"<<numeric_limits<long>::max()<<endl;
cout<<"unsigned long"<<"\t\t"<<sizeof (unsigned long)<<"\t"<<numeric_limits<unsigned long>::min()<<"\t\t\t"<<numeric_limits<unsigned long>::max()<<endl;
cout<<"long long"<<"\t\t"<<sizeof (long long)<<"\t"<<numeric_limits<long long>::min()<<"\t"<<numeric_limits<long long>::max()<<endl;
cout<<"unsigned long long"<<"\t"<<sizeof (unsigned long long)<<"\t"<<numeric_limits<unsigned long long>::min()<<"\t\t\t"<<numeric_limits<unsigned long long>::max()<<endl;
cin.get();
return 0;
}
运行结果如下: