1、汉字在计算机中的存储形式
计算机用两个字节来表示一个汉字,“我”在内存里就是这样存放的:CE D2。CE是str[0]的内容,D2是str[1]的内容。第一次循环输出str[0],但是这个字符在ASCII字符集里代表这样一个东西(不知道在这儿能不能正常显示),但是Windows的命令提示符程序读取到这里就会自动使用宽字符集,也就是说,它已经准备好读取下一个字符,然后把他们当成一个字符显示出来。于是就出现了那个汉字。
例程:
#include <stdio.h>
int main()
{
printf("%c%c",(char)0xce,(char)0xd2);
}
2、‘’/0' '0' 0 三者之间的关系
字符 '0' 和 '\0' 及整数 0 的区别
字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节(8 位二进制数)。
整型 int 在内存中占用空间为四个字节(32位二进制数)。
字符 '0':char c = '0'; 它的 ASCII 码实际上是 48,内存中存放表示:00110000。
字符 '\0': ASCII 码为 0,表示一个字符串结束的标志。这是转义字符(整体视为一个字符)。由于内存中存储字符,依然是存储的是对应字符集的字符编码,所以内存中的表现形式为 00000000。
整数 0 : 内存中表示为 00000000 00000000 00000000 00000000,虽然都是 0,但是跟上面字符 '\0' 存储占用长度是不一样的。