猛兽进村:char *s="\ta\0m\nb"; 指针变量s指向的字符串所占字节数是多少?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 00:22:06
\t是一个制表符,相当于一个大空格,算一个字符对吧?
在机器内显示应该是这样:
[TAB]a\0m<cR>
b
对吧?
[TAB]算一个字符,a算一个字符,\0算一个占空间的字符吧?
当然用strlen计算这个字符串长度的时候是2,但实际上这个S所指向的字符
串应该算占3个字符空间吧???就是这点我拿不准

呵呵strlen被你的\0给骗啦,因为strlen一看到\0就认为字符串结束了,所以前面的\t算一个,a算一个,就是长度为2.strlen返回的是一个字符串中字符的数目,实际上不应该把他看作字节数.只是刚好每个char占用一个字节.
实际上,这块内存一共占有6个字节.因为\t \0 \n都算一个字节的, "\"叫做转义符,他所造成的效果跟他实际占用的字节数没有任何关系.