关于c语言的问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 12:05:41
"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,这