字符串占用字节数的求法

时间:2022-01-15 10:48:47

1、示例代码:

// Test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <string.h>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout << "字符串占用字节数的求法:"<< endl;
cout << "sizeof(int) = " << sizeof(int) << endl;
cout << "sizeof(short) = " << sizeof(short) << endl;
cout << "sizeof(long) = " << sizeof(long) << endl;
cout << "sizeof(float) = " << sizeof(float) << endl;
cout << "sizeof(double) = " << sizeof(double) << endl;
cout << "sizeof(bool) = " << sizeof(bool) << endl;
cout << "sizeof(void*) = " << sizeof(void*) << endl << endl;

cout << "sizeof(char) = " << sizeof(char) << endl;
cout << "sizeof(wchar_t) = " << sizeof(wchar_t) << endl;
cout << "sizeof(TCHAR) = " << sizeof(TCHAR) << endl << endl;

cout << "窄字符(Ansi)" << endl;
char szStr1[] = "Hello World!";
char *pStr2 = "Hello World!";
cout << sizeof(szStr1) << endl;
cout << sizeof(char) * strlen(pStr2) <<endl;

cout << endl << "宽字节(Unicode)" << endl;
wchar_t szStr3[] = L"Hello World!";
wchar_t *pStr4 = L"Hello World!";
cout << sizeof(szStr3) << endl;
cout << sizeof(wchar_t) * wcslen(pStr4) <<endl;

cout << endl << "通用型" << endl;
TCHAR szStr5[] = _T("Hello World!");
TCHAR *pStr6 = _T("Hello World!");
cout << sizeof(szStr5) << endl;
cout << sizeof(TCHAR) * _tcslen(pStr6) <<endl;


getchar();
return 0;
}



2、当项目使用Unicode字符集时,运行结果如下:

字符串占用字节数的求法

字符串占用字节数的求法



3、当项目使用未设置(窄字符)时,运行结果如下:

字符串占用字节数的求法

字符串占用字节数的求法


4、使用多字节字符集时:

字符串占用字节数的求法


字符串占用字节数的求法