首页 热点资讯 义务教育 高等教育 出国留学 考研考公

C语言,字符串。要解释结果的由来。 还有去了\0的结果极其由来

发布网友 发布时间:2022-02-28 23:50

我来回答

2个回答

热心网友 时间:2022-03-01 01:20

结果是6,3,
理由: 这个字符数组其有效的字符为a,b,\012(换行),'\0',8,'\0',sizeof(x)为6
strlen(x)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出(不包括'\0')。。也就是不算上‘\0'所以结果是3,。。

去掉\0 结果6,5
理由: 这个字符数组其有效的字符为a,b,1,2,8,'\0',sizeof(x)为6
strlen(x)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出(不包括'\0')。。也就是不算上‘\0'所以结果是5,。。

热心网友 时间:2022-03-01 02:38

问题在 backspace 键。
\012 -- 八进制数012,
\08 -- 八进制数 008, 表示 backspace 键 (回退),sizeof() 得 2 。
sizeof(x) -- x 占用单元:a 一个,b一个, \012 一个, \08 二个,字符串结束符 一个, 共 6个
strlen -- 有效字符串长度。不计 backspace (和它后面的字符--如果有的话), x[]= "ab\012“ 得 3

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