武媚娘传奇粤语:关于c语言的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 18:13:29
"BB\n\\\'\r"在内存中占字节数为()此字符串长度为()
(A)6 (B)7 (C)8 (D)9 (E)10 (F)11
其中第一个应该选B,第二个应该选A,
可是书上没有详细的解答,请会的朋友帮忙解释一下,越详细越好!

内存中的7个字节分别是:
(1)B (2)B (3)\n (4)\\ (5)\'(6)\r (7)\0
在内存中存储字符串时需要在字符串末尾加上字符串结束标志(\0).在对字符串操作时用来判断字符串是否结束.
字符串长度指的就是字符串本身应有的数据长度,忽略末尾的结束标志.

对于上面的3-7来说,反斜杠是转移字符,因为控制字符是不可见的,不方便输入,所以采用这种"转义"的方法
例如:\n实际上是ASCII码中的0A(参考ASCII码).字符串中每个字节存储的就是ASCII码.
参考:
ASCII码1

http://pic.lyglyg.com/yourpic/2005/11/18/027bf0d818ad41042e04374a73812833.gif

2。
http://pic.lyglyg.com/yourpic/2005/11/18/a7255c5d9177ff5f3d41bf159fe0f800.gif

"BB\n\\\'\r"
前两个BB是两个字,\n代表一个回车,\\代表一个\,\'代表',\r是一个换行
所以,这个字符串一共有六个字符,即字符串的长度是6。
又因为C中字符串要在末尾加个0表示结束,所以在内存中占的空间比实际长度多1,这题中为7。

"BB\n\\\'\r"
其中B是一个字节,两个B就是两个字节
\n是一个字节是换行,前面的\是转移字符
\\是一个字节就是字符"\",\的意思如上
\'也是一个字节是字符"'",\如上
\r是一个字节是回车,\如上
还有每个字符串都最后都有一个结束符'\0',占一个字节
所以是7个内存空间
然后算长度的时候,结束符不算内

"BB\n\\\'\r"
字符串长度是6 \n \\ \' \r 是转义字符均占一个字节,所以字符串的长度是6。
字符串以\0作为结束符,所以在内存中真正占用的空间是7个字节。