A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
    char str[ ]="ab\013r";
    char str1[ ]="ab\091r";
    printf("%lu,%lu\n",strlen(str),sizeof(str));
    printf("%lu,%lu\n",strlen(str1),sizeof(str1));
    return 0;
}
得出来的结果:第一个打印得出4,5,第二个打印得出2,7
这是为什么呢,因为转义字符在计算机中以8进组的方式表示,凡是超过7的数组,都不能被' \ '转义,所以,大家明白了吧

6 个回复

倒序浏览
感谢大神解惑  纠结了一晚上这个问题了  THX  膜拜
回复 使用道具 举报
0919Gflag 发表于 2015-10-6 23:57
感谢大神解惑  纠结了一晚上这个问题了  THX  膜拜

同学,你坐几排第几列
回复 使用道具 举报
感觉说得哪里不对
回复 使用道具 举报
wwf707542865 发表于 2015-10-7 22:00
同学,你坐几排第几列

在你前边坐着
回复 使用道具 举报
是的。用到了    \ddd    表示1-3位八进制数所代表的字符。      \xhh       表示1-2位十六进制数所代表的字符
回复 使用道具 举报
赞,顶一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马