几个C语言问题 超简单

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:28:46
int b='\123' 则变量b包含了1个字符 请问为什么是1个字符?
字符串"\\\"ABC\"\\"的长度是7 请问为什么是7?
字符串"\\0121\012"在内存中用、占用的字节数是6 请问问什么是6?

第一题:是一个ASCII码值为123的字符,\是转义字符
第二题,应该是8个,\\是一个代表'\'
\"是一个代表"\
ABC是三个,总计7个字符,在字符串结尾还有一个'\0'是标识结尾的.(因为C语言中在字符串中不能直接使用\与",只能通过前面家专一字符\来表示)
第三题同上,前面的数字是按字符存的,根在\后面的数字是转译后的字符ASCII码

1.你定义的b是int型,所以他只能取到其中的第一字符
2.第一个和最后一个双引号是字符串的标识,所以不算,又\和"是特殊字符,输入时需要转义输入,所以\\只表示\,而\"只表示",所以7个字符包括\"ABC"\, 但是好像应该还有个结束符的,不知你的7是如何得出的
3.个人以为此处\0也是转义字符,但是为何是6却不得而知了,感觉不止6个

''之间的是字符的值,而用上\123表示的是123值所对应的字符。

\\是\, \"是", 即1+1+3+1+1=7
\0121? 是六个字符,最后的\012是一个字符

\是转意字符,代表后面的123代表一个ASCII码对应的符号。
"(\\)(\")(A)(B)(C)(\")(\\)"一个括号代表一个字符。

"(\\)(0)(1)(2)(1)(\012)"同上一共有六个字符,占用六个字节。但是字符串在内存中存储时末尾自动加“\0” ,因此应该是7才对。