C语言字符数组结束标志的问题?
主程序如下所示charstr[]="ab\n\012\\\n";printf("%d",strlen(str));我不明白用字符串长度测量函数strlen测出str的长度...
主程序如下所示
char str[]="ab\n\012\\\n";
printf("%d",strlen(str));
我不明白用字符串长度测量函数strlen测出str的长度为何会是6?在我看来,strlen计算除去字符串结束标志\0外所有字符的个数,str字符串中出现了\0,我以为长度会是3或者是8,因为我把\\\n理解为两个斜杠加一个转义字符,是3个字符。 展开
char str[]="ab\n\012\\\n";
printf("%d",strlen(str));
我不明白用字符串长度测量函数strlen测出str的长度为何会是6?在我看来,strlen计算除去字符串结束标志\0外所有字符的个数,str字符串中出现了\0,我以为长度会是3或者是8,因为我把\\\n理解为两个斜杠加一个转义字符,是3个字符。 展开
3个回答
展开全部
\012 是一个整体,算一个字符,是八进制表示的,其实等于\n
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\n是一个
\012是一个(八进制转义)
\\是一个
\n是一个
加上ab~
\012是一个(八进制转义)
\\是一个
\n是一个
加上ab~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
相当于是字符串"ab012\",故长度为6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询