C语言中字符串“\\033abcdeL"的长度是多少?

来源:百度知道 编辑:UC知道 时间:2024/05/04 20:44:01

10

10。
\\为转义字符,转义结果为单个反斜杠,在字符串中占用一字节。以下的各个字符各占用一字节,所以结果是10。
LS理解有误。对于字符串来说,它的长度是其中有效字符的个数。对于char[]或char const[]类型的字符串,可以用strlen()得到(且和有效字符所占的总空间大小相同),LZ可以自行试验。
LZ并非提问字符串字面量这一对象的长度。sizeof("\\033abcdeL")可得这个结果确实是11。由于是char[]类型字符串,sizeof("\\033abcdeL")==strlen("\\033abcdeL")+1成立。
顺便:ANSI C中规定字符常量的sizeof运算结果和sizeof(int)相同。也就是说sizeof('a')这样的结果可能是4(32位系统中)或2(16位系统中)。所以“一个char占用1个字节的长度”不总是正确的,比较合理的说法是“一个char变量占用1字节的空间”。(ISO C++中倒是规定字符常量占1个字节的空间。)
----
[原创回答团]

11个字节
\\ 转义符,表示"\"这个字符本身,占1个char的长度
033abcdeL,9个字符每个占1个char的长度,就是9个char的长度
最后还要加一个0作为结束符,占用1个char的长度
一共是11个char长度
一个char占用1个字节的长度,也就是8 bits

但是ANSI C对于char类型的长度并没有作硬性规定,也有占16个字节的,那就是22个字节,但是这种情况很少

10用stren不行的,它遇到'\0'就结束了

你strlen看下不就得了。。。