我想知道一个数据类型在 c++ 中有多少字节,但我不知道从哪里开始。我在谷歌上搜索但找不到任何东西。
问问题
5809 次
2 回答
2
我不知道你怎么会错过sizeof
。
在编程语言 C 和 C++ 中,一元运算符 sizeof 用于计算任何数据类型的大小。sizeof 运算符产生其操作数相对于 char 类型大小的大小。
sizeof ( type-name )
请参阅此处了解更多信息:MSDN
以下是来自 MSDN 的示例:
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
using namespace std;
int main()
{
char szHello[] = "Hello, world!";
cout << "The size of a char is: "
<< sizeof( char )
<< "\nThe length of " << szHello << " is: "
<< sizeof szHello
<< "\nThe size of the pointer is "
<< getPtrSize( szHello ) << endl;
}
于 2013-07-24T10:13:58.443 回答
1
使用 sizeof 运算符
#include <iostream>
using namespace std;
int main()
{
cout << "bool:\t\t" << sizeof(bool) << " bytes" << endl;
cout << "char:\t\t" << sizeof(char) << " bytes" << endl;
cout << "wchar_t:\t" << sizeof(wchar_t) << " bytes" << endl;
cout << "short:\t\t" << sizeof(short) << " bytes" << endl;
cout << "int:\t\t" << sizeof(int) << " bytes" << endl;
cout << "long:\t\t" << sizeof(long) << " bytes" << endl;
cout << "float:\t\t" << sizeof(float) << " bytes" << endl;
cout << "double:\t\t" << sizeof(double) << " bytes" << endl;
cout << "long double:\t" << sizeof(long double) << " bytes" << endl;
return 0;
}
输出:
bool: 1 bytes
char: 1 bytes
wchar_t: 2 bytes
short: 2 bytes
int: 4 bytes
long: 4 bytes
float: 4 bytes
double: 8 bytes
long double: 12 bytes
使用 MinGW g++ 4.7.2 Windows
于 2013-07-24T10:17:19.943 回答