宽字节集与多字节集(及各方面的思考)

1、宽字节就是不管英文还是汉字都是以2个字节(16位)存储,多字节集就是英文1个字节汉字两个字节存储(8位,16位)。

2、sizeof(数据类型):sizeof(int)=4  sizeof(char)=1 sizeof(WXHAR)=2  sizeof(LPCSTR)=4   LPCSTR是长常量指针;

char str[64];

sizeof(str)=64 

sprintf_s(str,sizeof(str),"asdas汗");

LPCSTR lP=(LPCSTR)str;

strlen(lP)=7;//因为lP是个指针他指向str[0]的地址(首地址),strlen函数从str首地址开始查找计数返回7。因为char一个字节读一个字节加+1(根据sizeof(char)).

strlen()所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。

.............................................................................................

WXHAR wStr[64] = L"abc汗";

wcslen(wStr)=4//因为sizeof(WXHAR)为2个字节,所以以2个字节开始扫描计数。只有wStr[0] wStr[1] wStr[2] wStr[3]

原文地址:https://www.cnblogs.com/zys871841072/p/2889364.html