C语言调用strlen()函数时为什么在\0后接7时,\0会被忽略掉?

img

如图,为什么长度是16,\0被忽略掉了。

img

img
但是\0后不接7的时候,该函数就可以识别\0,长度就正常了?

\0是字符串的结束符号,一般放在字符数组的最后,碰到\0会忽略后面的字符。

不是被忽略了,而是\07被认为是八进制7所对应的ASCII码的字符
你可以试试打印这个字符串,结果是:this \a8string显然\07被认为是一个字符