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

C语言中字符串“33abcdeL"的长度是多少?,第1张

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个字节的空间。)
----
[原创回答团]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13407268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存