为什么sizeof("abed\0fg")的值是8而sizeof(1234\056)的值是6?_百度知 ...

发布网友 发布时间:2024-10-24 00:10

我来回答

1个回答

热心网友 时间:2024-11-09 22:29

这两个都是字符串写法。字符串在求sizeof时需要注意两点:
1 统计字符的个数,尤其是转义字符的处理;
2 结果要包含隐藏的字符串结束符\0。

对于这两个字符串:
1 "abed\0fg" 包含字符为a, b, e ,d, \0, f, g以及隐藏的\0。所以共计8个字符,于是sizeof值为8。其中的\0被转义为ascii码值为0的字符。

2 ''1234\056''包含字符为1,2,3,4,\056以及隐藏的\0。所以共计6个字符,于是sizeof值为6。其中\056四个字符,共同组成了\加三位8进制字符的形式,代表ascii码为8进制56的字符。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com