第1个回答 2013-07-26
0 1 2 3 \045 6 7 8 9
strlen是不会计入字符串的\0结尾符的,所以如上我分割开了的,数出来就为9个字符
显示为9
后面&str[5]这个str[5]的地址是由一些字符组成的,strlen(&str[5])计算出地址长度就为4个字节,显示为4
第2个回答 2013-07-26
str实际内容为0123%6789,百分号那里对应的ascii值为37,化为八进制就是45
在转义字符中,
\ddd 代表 三位八进制
所以\045部分变成%了,你要的字符串中的\0,只有出现在字符串末尾才能得到,如"0123\0"。
第3个回答 2013-07-26
strlen(str)传入的是指针地址,地址可以自增,\0自动去掉的
strlen(&str[5])传入的是数组地址,找到\0就结束了,默认是结束符
第4个回答 2013-07-29
\045 是八进制数45,二进制代码在ASCLL码里就是"%",只相当于一个字符。