c语言中,字符“北京”在机器中占多少个字节

来源:百度知道 编辑:UC知道 时间:2024/05/16 09:40:02
谢谢!希望能深入的说说谢谢!

"北京"在C中不是字符,是字符串!这个字符串占用5个字节。汉字在计算机中用所谓“机内码”表示,一个汉字两个字节,如“北京”的机内表达是1011000110110001(北)1011111010101001(京),最后系统还要在末尾添加一个字符串结束标记'\0'!

char a[]="北京" 这时系统在串的后面加'/0' 每个汉字2字节 所以2*2+1=5

后面的那个'\0'我觉得没必要说 应该说关键问题
这个不是脑动急转弯

要看你使用的C库 (utf8编码的话 不依赖C库和编译器,但要终端支持)

一般书上写的是4个字节 因为是gb2312编码

但linux里面一般是utf8编码 所以占多少个字节说不准的
北京在utf8里面是6个字节
因为一个汉字用3个字节

具体多少个字节 要看平台和什么字

想要知道多少可以用 strlen(str)得到到底多少字节

但如果是等宽的unicode编码 可能不能用strlen因为
(这点没验证 想当然的)

“北京”是字符串哈,一个字2个字节,外加'\0'结束符,一共占5byte

4+1=5个,一个英文字母占一个字节,一个字节八位,最大数255。中文有几万个汉字,所以用双字节,才能表示完所有汉字。

一个汉字2字节
4个呗

4+1=5 两个汉字4,结束符1个字节