C 程式求解释说明

来源:百度知道 编辑:UC知道 时间:2024/06/27 17:24:29
char sp[]="\t\v\\\0will\n";
printf("%d",strlen(sp));
控制符,没有放在内存里面吗,还是在执行strlen()时没有把控制符算上去吗

strlen(sp) = 3;

为什么呢

首先要知道 strlen() 函数
它的作用是统计字符的长度,但不包括 '\0' 在内的长度

而且,一个字符串是以 '\0' 为结束的,
所以其实就是 char sp[] = "\t\v\\\0";
\t, \v, \\ 各为转义字符,所以
strlen(sp) = 3

sp[0] = '\t', sp[1] = '\v', sp[2] = '\\', sp[3] = '\0'

\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
strlen()数据大小

定义字符串sp :\t\v\\\0will\n
字符串的长度,答案是:9

这是一个符号型数据的问题
不过那个\v我似乎还没见过啊