字符串常量算字节与strlen求长度的区别?
我们知道一个字符串常量在算所占内存的字节数时往往是等于字符串字符的个数再加1.因为尾部放‘\0’,表示结束。而在用strlen函数时末尾的‘\0’却不算,这是怎么回事?难道这两者表示的意义不一样么?也就是字节数与求长度不是一个意思吗?请帮我解答一下
strlen是以'\0'做为一个结束标记。strlen会计算'\0'前面的字节。
如:
char b[2];
b[0]='f';
printf("%d",strlen(b));
结果是多少? 是2? 是1? 绝不,答案是无法预知的,因为你不知道b[0]后面在哪个地方strlen放了'\0'.
所以'\0',是strlen个人需求的,你还是帮忙把'\0'放到适当的位置,要不你就等着瞧吧。
啊死卡玛 里面1个字符需要8位来表示 也就是一个字节 要求长度按字面来说是求字符数, 由此而知也是求字节数
[ 本帖最后由 do8do8do8 于 2010-8-19 10:05 编辑 ]