Riordon

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

1、TCHAR p[] = _T("IT 学吧"),sizeof(p)与_tcslen(p)有何区别?

     sizeof是求字符串所占的内存字节数(要计算结束字符),_tcslen是求字符串的字符长度(不计算结束字符).(注意:字节数 != 字符长度)

2、中英文字符(32位操作系统)分别占几字节?

     一个中文字符占2字节,一个英文字符占1字节

3、各种字符集在内存中的排列

 //在宽字节(unicode)字符集下:

  一个字符占2个字节,一个中文字符是1个字符,一个英文字符也是1个字符(在此模式下,英文字符实际占一个字节,自动在英文字符前添加'\0',构成2字节的一个字符)

 //在多字节字符集下:

  一个字符占1个字节,一个中文字符是2个字符,一个英文字符是1个字符

4、程序实例

 

 1 int _tmain(int argc, _TCHAR* argv[])
 2 {
 3     //在Unicode字符集下
 4     wchar_t  p1[] = L"It 学吧";
 5     int l1 = sizeof(p1);
 6     int l2 = wcslen(p1);
 7 
 8     //在多字符集下
 9     char p2[] = "It 学吧";
10     int l3 = sizeof(p2);
11     int l4 = strlen(p2);
12 
13     return 0;
14 }
View Code

5、示例结果

   l1 = 12, l2 = 5, l3 = 8, l4 = 7

 

posted on 2013-07-29 11:42  Riordon  阅读(462)  评论(0)    收藏  举报