C语言字符数组长度的问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:35:08
以下语句的输出结果是什么??
printf("%d\n",strlen("\t\"\085\xff\n"));
参考答案是2.我搞不清楚为什么是2,答案是不是错了啊,谁帮我解释一下,谢谢了.

因为C语言碰到\0就认为是字符串结束的,所以你的\0前面只有\t\",长度为2

printf("%d\n",strlen("\t\"\085\xff\n"));

"\085"实际是'\0' '8' '5'
'\085'是错误的,\0xxx可以表示8进制数,x只能是0-7

个人认为这种题目没有意义,大可不必研究~