srelen(str),-- strlen(str) 得 7
\t -- tab 键值 1byte
\x42 -- 16进制 数 1byte
\\ -- \ 键值 1byte
bcd -- 3 个字符,3 bytes
\n -- 新行 键值 1byte
共 7 bytes, 所以 strlen(str) 得 7
sizeof(str) -- str 数组大小,字符串结束符 '\0' 也要占1字节,7+1 为8
/************************************************************************/
/* 21chenxb' work
2010-6-26
VC++6.0
C加加爱好者团
/************************************************************************/
经过一番修改,输出7,8
#include
#include
void main()
{ char str[]="\t\x42\\bcd\n";
printf("%d,%d",strlen(str),sizeof(str));
}
解释:关于转义字符不再多说,书上有详细介绍。
主要看输出的两个数字,分别代表strlen(str) str的长度(没有包括最后的空字符) ,sizeof(str)(包括了最后的空字符,所以多一个)