C语言字符串长度的问题

"s\n\016"长度为3,为什么
"s\n\0166"为4,WHY?

你肯定是用strlen来测的,它是只针对有效字符串,也就是遇\0而止,\0并不算在其中。若是sizeof测的,就是所有的字符长度之和,包括\0。另外,若所给的字符串里的相邻字符能够成转义字符时,以转义字符为先,而不是屏幕上所显示的单个字符了。所谓转义字符,即由\后面紧接八进制(当能够成三位或者两位的合法八进制数),或者十六进制(特点是有个x开头)时,它所代表的是这个数对应的ASC码代表的字符。所以\016是一个整体的转义字符优先,而不能是组成\0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-03
s 1个字母
\n 1个新行符号
\016 1位8进制数
总的 3 个

s 1个字母
\n 1个新行符号
\016 1位8进制数
6 1个数字
总的 4个

相关了解……

你可能感兴趣的内容

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