# include <stdio.h>
#include <string.h>
int main (void)
{
printf("%d\n", strlen("\88"));
return 0;
}
显而易见,此时反斜杠后面直接加的数字并不是不是八进制数,此时字符串的长度为几?
此时编译运行的结果是 2。
然后去掉一个8。
# include <stdio.h>
#include <string.h>
int main (void)
{
printf("%d\n", strlen("\8"));
return 0;
}
此时编译运行的结果为 1。
那么单字符 '\8' 到底代表了什么?
此时用 putchar('\8'); 尝试一下。
# include <stdio.h>
#include <string.h>
int main (void)
{
putchar('\8');
return 0;
}
然后编译运行的结果是 8。
再用printf输出一下,得到的常量是56,即是字符8的ASCII码。
同理,将字符8改成9之后得到的含义是相同的,9的ASCII码是57。
于是得到单字符'\8'的含义等价于'8' ,单字符'\9'的含义等价于'9'。