字符串类型
char* :一串以0结尾的char,其中每个char代表一个ascii码;他所代表的字符串通常使用ANSI编码 CHAR*:同char*,windows下可用 wchar_t*:一串以0结尾的wchar_t,其中每个wchar_t可能代表一个unicode码. WCHAR*:相当于wchar_t* , windows下可用 TCHAR*: 一串以0结尾的TCHAR,其中TCHAR可能代表一个unicode码,也可能代表ansi码,根据是否定义unicode宏决定。 |
WINDOWS字符串类型
L:long (16位操作系统遗物,在32位系统中,已经不需要long修饰了) P:point C:const T:如果定义unicode,则代表wchar_t,否则代表char STR:字符串 |
LPSTR|PSTR == char* LPCSTR| PCSTR == const char* LPWSTR|PWSTR == wchar_t* LPCWSTR|PCWSTR == const wchar_t* LPWSTR|PWSTR == TCHAR* LPCWSTR|PCWSTR == const TCHAR* |
规律:L可以省略,P比不可省,先判断是否为C,在判断宽字符,最后加str |
字符串常量
char* a = "this is char"; CHAR *b = "this is CHAR"; wchar_t *c = L"this is whcar_t"; WCHAR *d = L"this is WCHAR"; TCHAR* e = _T("this is TCHAR"); |
注意
L"xxxxx"代表unicode,而wchar_t存的是宽字节,但却不一定是unicode!