char ss[8] = "123\0456";

char ss[8] = "123\0456";
printf("%lu\n", strlen(ss));

为什么结果是 5

“\045”表示转义“045”,以0开头的数字是八进制,即“\045”表示十进制的37。带上其他"1236" 4个数,共5位!有帮助请采纳!

因为\045被识别成一个八进制数字了,所以分别是1,2,3,\045,6共5个字符