<span style="font-size:18px;color:#3366ff;"> 学了也有一两年的语言了,到现在连基本的数据类型的大小也不是很清楚,或者说是根本就不知道。虽然以前也都看过,但真容易忘。其实感觉好像也不能怪我,谁叫它不经常被用到,或是说不经常被我给用到。其实这也只是为自己找了一个借口罢了。直到今天,遇到memset()函数,才想彻底弄清楚一些基本的数据类型的大小,此处仅限于基本。经过在网上的查找,和自己的整理,在win7 64位的机子上测试了c++中一些常见的数据类型。</span>
2015年4月8日16:14:32
下面就是代码,若哪儿有不对或是什么建议,请各位观者不吝指出!
#include<iostream>
#include<string>
#include<limits>
using namespace std;
int main()
{
cout << "type \t\t" << "************size**************" << endl;
cout << "bool: \t\t" << "所占字节数:" << sizeof(bool);
cout << "\t最大值:" << (numeric_limits<bool>::max)();
cout << "\t\t最小值:" << (numeric_limits<bool>::min)() << endl;
cout << "char: \t\t" << "所占字节数:" << sizeof(char);
cout << "\t最大值:" << (numeric_limits<char>::max)();
cout << "\t\t最小值:" << (numeric_limits<char>::min)() << endl;
cout << "signed char: \t" << "所占字节数:" << sizeof(signed char);
cout << "\t最大值:" << (numeric_limits<signed char>::max)();
cout << "\t\t最小值:" << (numeric_limits<signed char>::min)() << endl;
cout << "unsigned char: \t" << "所占字节数:" << sizeof(unsigned char);
cout << "\t最大值:" << (numeric_limits<unsigned char>::max)();
cout << "\t\t最小值:" << (numeric_limits<unsigned char>::min)() << endl;
cout << "short: \t\t" << "所占字节数:" << sizeof(short);
cout << "\t最大值:" << (numeric_limits<short>::max)();
cout << "\t\t最小值:" << (numeric_limits<short>::min)() << endl;
cout << "int: \t\t" << "所占字节数:" << sizeof(int);
cout << "\t最大值:" << (numeric_limits<int>::max)();
cout << "\t最小值:" << (numeric_limits<int>::min)() << endl;
cout << "unsigned: \t" << "所占字节数:" << sizeof(unsigned);
cout << "\t最大值:" << (numeric_limits<unsigned>::max)();
cout << "\t最小值:" << (numeric_limits<unsigned>::min)() << endl;
cout << "long: \t\t" << "所占字节数:" << sizeof(long);
cout << "\t最大值:" << (numeric_limits<long>::max)();
cout << "\t最小值:" << (numeric_limits<long>::min)() << endl;
cout << "unsigned long: \t" << "所占字节数:" << sizeof(unsigned long);
cout << "\t最大值:" << (numeric_limits<unsigned long>::max)();
cout << "\t最小值:" << (numeric_limits<unsigned long>::min)() << endl;
cout << "long long: \t" << "所占字节数:" << sizeof(long long);
cout << "\t最大值:" << (numeric_limits<long long>::max)();
cout << "\t最小值:" << (numeric_limits<long long>::min)() << endl;
cout << "double: \t" << "所占字节数:" << sizeof(double);
cout << "\t最大值:" << (numeric_limits<double>::max)();
cout << "\t最小值:" << (numeric_limits<double>::min)() << endl;
cout << "long double: \t" << "所占字节数:" << sizeof(long double);
cout << "\t最大值:" << (numeric_limits<long double>::max)();
cout << "\t最小值:" << (numeric_limits<long double>::min)() << endl;
cout << "float: \t\t" << "所占字节数:" << sizeof(float);
cout << "\t最大值:" << (numeric_limits<float>::max)();
cout << "\t最小值:" << (numeric_limits<float>::min)() << endl;
cout << "string: \t" << "所占字节数:" << sizeof(string) << endl;
cout << "string:\t\thello world\t" << "所占字节数:" << sizeof("hello,world") << endl;
char a[20];
cout << "char a[20] \t" << "所占字节数:" << sizeof(a) << endl;
int b[20];
cout << "int b[20] \t" << "所占字节数:" << sizeof(b) << endl;
cout << "type: \t\t" << "************size**************" << endl;
system("pause");
return 0;
}
运行结果: