C语言中printf("%d\n",strlen("\t\"\065\xff\n"));的输出为何是5?

我上机调试了,确实输出值为5;在我运行printf("%d\n","\t\"\065\xff\n")时,输出的字符串显示为:"5,"5前面有8个空格(可能是制表位),"5后面有两个空格(可能是\xff所至),但该字符串的长度为什么是5?请高手指点!
谢谢!

  printf函数输出strlen()函数执行的结果,strlen()计算字符串"\t\"\065\xff\n"的字符个数,该字符串中有5个元素,所以会输出5,5个元素分别是:
  1、\t:换码符'\t',表示水平制表位(horizeontal tab)。
  2、\" :双引号
  3、\065:字符\后面的数字065是三个八进制数,它是数字5的ASCII码值
  4、\xff:字符\x后面的数字ff是两个十六进制数。
  5、\n : 换行字符。

  这5个字符都是转义字符。转义字符是C语言中表示字符的一种特殊形式。转义字符以反斜'\'开头,后面跟一个字符或一个八进制或十六进制数表示。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-27
\t(制表符)
\"(引号)
\065(八进制转义序列,对应的ASCII字符是5)
\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)
\n(回车换行符)

共5个字符.
第2个回答  2008-08-27
\t(制表符)
\"(引号)
\065(八进制转义序列,对应的ASCII字符是5)
\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)
\n(回车换行符)

对的
第3个回答  2008-08-27
因为本来就是5本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网