C语言这个结果为什么是4啊

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:57:13
#include<stdio.h>
#include<string.h>

void main()
{

char *p="abc\101\0fghijk\0";
printf("%d",strlen(p));

}
请解释详细一些 因为我基础很差 谢谢!!

'\'为转义符
如果‘\’后面紧跟的是数字时,则往后找符合八进制数的数字串,最长为3个字符,这个字符串代表的10进制数超过255时报错。
题中
\101 符合八进制,转化为10进制数时是65,即A.
\0 符合八进制,转化为10进制时是0
又知道strlen遇到0就返回
这长度为4
表示的字符串为"abcA"。

答案是4 因为字符串是以\0结束的 而带\101一个数字是特殊转义字符算1个 所以答案是4