提问
#include <stdio.h>int main()
{
char str[] = "中";
int length, i;
length = sizeof(str) / sizeof(str);
printf("length of str: %d\n", length);
for (i = 0; i < length; i++)
{
printf("str[%d] = %d\n", i, str);
}
return 0;
}
https://xxx.ilovefishc.com/forum/201605/30/113637ihmcp88m1h1491y8.png
不难发现,每个中文字符在我们的系统中是占用 4 个字节的存储空间,并且都是负数。以此规律,我们只要检测一个字符对应的整型值是否为负数,如果是(中文字符),则将指针往后移动两个字节。
提问:
不是3个负数么,第四个0应该没有意义吧,下一个字符回复盖着个零么?????? 运行这个代码
#include <stdio.h>
int main()
{
char str[] = "中文";
int length, i;
length = sizeof(str) / sizeof(str);
printf("length of str: %d\n", length);
for (i = 0; i < length; i++)
{
printf("str[%d] = %d\n", i, str);
}
return 0;
} 人造人 发表于 2020-4-9 23:02
运行这个代码
问一下最后一个0的存储是指‘\0’,这个字符串结束符么 如果孤独感 发表于 2020-4-10 08:26
问一下最后一个0的存储是指‘\0’,这个字符串结束符么
对
页:
[1]