左边胃下面疼怎么回事:C语言,请指点

来源:百度文库 编辑:高校问答 时间:2024/04/23 23:06:51
下面语句的输出结果是:
printf("%d\n",strlen("\t\"064\xff\n"))
对不起,答案是5!
我运行过了,答案是5!
请解释!

可以肯定的是你运行的时侯,“0” 的左边有一个 “\”,造成 “064” 被当成一个字符(逃逸字元)。 加上它周围的 4 个逃逸字元,你得到的结果便是 5。

但是你上面给出的代码里 “0” 的左边没有“\”,所以 “064” 被当作 3 个字符,我们得到的结果便是 7。

我回答过的一道题跟你的非常相似(只不过多了一个逃逸字元),里面有详细的解释:
http://zhidao.baidu.com/question/2767995.html

/////
自己用电脑看看.

\t为位移键,也就是TAB键,占一字节空间
\"为双引号字符,占一字节空间
字符串064占三字节空间
\xff为一字节空间(这个就是常说的假空格啦~~)
\n为换行符,占一字节空间

所以strlen()就是1+1+3+1+1=7Byte

答案是7

7

懂了